本文主要使用的是Jdom.jar包(包的下载百度一下)实现了生成xml文件和解析xml文件

下面是生成xml的实现

说明:stuLists集合是一个存放着Student对象的集合

 import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList; import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter; public class AddXml {
public static void main(String[] args) {
new AddXml().changeXml();
}
public void changeXml(){
Jdbc jdbc = new Jdbc();
jdbc.addList();
ArrayList<Student> stuLists = Jdbc.getStuList(); Document docu = new Document();
Element root = new Element("root");
docu.addContent(root);
for (int i = 0; i < stuLists.size(); i++) {
// System.out.println(stuLists.get(i));
Student s = stuLists.get(i); Element info = new Element("info");
Element student = new Element("student");
Element id = new Element("id");
Element name = new Element("name");
Element sex = new Element("sex");
Element age = new Element("age"); Element book = new Element("book");
Element bid = new Element("bid");
Element bname = new Element("bname");
Element bprice = new Element("bprice");
Element bautor = new Element("bautor");
book.addContent(bid);
book.addContent(bname);
book.addContent(bprice);
book.addContent(bautor); student.addContent(id);
student.addContent(name);
student.addContent(sex);
student.addContent(age);
info.addContent(student);
info.addContent(book); root.addContent(info);
int a = i+1;
String No = "000"+a;
student.setAttribute("No", No);
id.setText(s.getId());
name.setText(s.getName());
sex.setText(s.getSex());
age.setText(s.getAge()); String b="0"+a;
bid.setText(b);
bname.setText("java核心");
bprice.setText("1334.0");
bautor.setText("star"); }
//格式化生成的xml文件,如果不进行格式化的话,生成的xml文件将会是很长的一行...
Format format = Format.getCompactFormat();
format.setEncoding("utf-8");
format.setIndent(" ");
XMLOutputter xo = new XMLOutputter(format);
try {
xo.output(docu, new FileOutputStream(new File("e:/io/stu.xml")));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("生成xml文件成功!!!");
}
}

结果如图所示:

下面是用java解析上面所写的xml文件

简写版

package com.direct.demo;

import java.io.IOException;
import java.util.List; import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder; public class Saxxml { public static void main(String[] args) {
//解析xml文档
SAXBuilder builder = new SAXBuilder();
Document docu = null;
try {
docu = builder.build("e:/io/student.xml");
} catch (JDOMException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} Element root = docu.getRootElement();//得到根目录
List stulist = root.getChildren();
System.out.println(stulist.size()+"-----------");
System.out.println("------------------读取xml文档的信息---------------------");
for (int i = 0; i < stulist.size(); i++) {
Element e = (Element) stulist.get(i);
String stuid;
String stuname ;
String stusex ;
String stuage;
/*String stuValues = e.getAttribute("No").getValue();//属性值
String stuValues1 = e.getAttributeValue("No");
if (stuValues.equals("102")) {
//修改姓名
System.out.println(stuValues);
e.getChild("stuname").setText("砖石王老五");
//删除元素
root.removeContent(e);
break;
}*/ if (i==0) {
stuid = e.getChildText("stuid");
stuname = e.getChildText("stuname");
stusex = e.getChildText("stusex");
stuage = e.getChildText("stuage");
}else {
stuid = e.getChildText("stuid"+i);
stuname = e.getChildText("stuname"+i);
stusex = e.getChildText("stusex"+i);
stuage = e.getChildText("stuage"+i);
}
System.out.println("属性:"+e.getAttributeValue("No"));
System.out.println("学号:"+stuid);
System.out.println("姓名:"+stuname);
System.out.println("年龄:"+stuage);
System.out.println("性别:"+stusex);
System.out.println("--------------------");
}
}
}

  

java 生成和解析xml的更多相关文章

  1. dom4j生成和解析xml文件

    dom4j生成和解析xml文件 要生成和解析如下格式的xml文件: <?xml version="1.0" encoding="UTF-8"?> & ...

  2. DOM4J生成、解析XML实例

    import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.Iterato ...

  3. JDOM生成、解析XML实例

    import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import j ...

  4. Java用SAX解析XML

    要解析的XML文件:myClass.xml <?xml version="1.0" encoding="utf-8"?> <class> ...

  5. java Document生成和解析xml

    转自:https://blog.csdn.net/p812438109/article/details/81807440 Document场景:需要知道文档所有结构 需要把文档一些元素排序 文档中的信 ...

  6. java使用sax解析xml

    目的:解析xml文件,并存入mysql,并且要解析的字段能一一对应.这里解析的是微博的文件,想要利用里面的article和person_id字段. 思路: 为了能得到person_id和article ...

  7. android 67 生成和解析xml

    生成xml: package com.itheima.createxml; import java.io.File; import java.io.FileNotFoundException; imp ...

  8. Java生成、解析二维码

    今天遇到需求,使用Java生成二维码图片,网搜之后,大神们早就做过,个人总结一下. 目标:借助Google提供的ZXing Core工具包,使用Java语言实现二维码的生成和解析. 步骤如下: 1.m ...

  9. Java中Sax解析XML

    SAX基于事件的解析,解析器在一次读取XML文件中根据读取的数据产生相应的事件,由应用程序实现相应的事件处理逻辑,即它是一种“推”的解析方式:这种解析方法速度快.占用内存少,但是它需要应用程序自己处理 ...

随机推荐

  1. JAVA JVM 杂谈(一)

    JVM能够跨计算机体系结构来执行Java字节码,主要是由于JVM屏蔽了与各个计算机平台先关的软件或者硬件之间的差异,使得与平台先关的耦合统一由JVM的提供者来实现. JVM结构组成: 1.类加载器:在 ...

  2. 条目二十八《正确理解由reverse_iterator的base()成员函数所产生的iterator的用法》

    条目二十八<正确理解由reverse_iterator的base()成员函数所产生的iterator的用法> 迭代器的种类一共有四种,上面已经说过了.这里就不再次写出来. 这一个条目主要是 ...

  3. 使用Git如何优雅的忽略掉一些不必的文件

    熟悉使用Git之后发现,使用sourceTree来管理和开发项目会变得更高效,现在我用bitbucket管理自己的项目,它提供了私有的仓库,用起来还是比较爽,不过刚开始用的时候,只要一打开本地仓库的工 ...

  4. [CoffeeScript]在WebStorm里运行CoffeeScript

    CoffeeScript 是一门编译到 JavaScript 的小巧语言. 在 Java 般笨拙的外表下, JavaScript 其实有着一颗华丽的心脏. CoffeeScript 尝试用简洁的方式展 ...

  5. django 创建QueryDict类型报错

    报错信息:django.core.exceptions.ImproperlyConfigured: Requested setting LOGGING_CONFIG, but settings are ...

  6. Locust源码目录结构及模块作用

    Locust源码目录结构及模块作用如下: 参考文章:https://blog.csdn.net/biheyu828/article/details/84031942

  7. vue移动端更改手机物理按键返回问题

    又是一天见面的日子,春季盎然~ 已经无法在继续抒情下去了,写作水平骤降!! 今天记录下应用cordva+vue生成的apk 在手机物理返回时遇到的问题: 前提说~~应用vue,我们可以自定义上一路径和 ...

  8. ES6新特性整理,你需要了解的ES6知识

    ES6是新版本JavaScript语言的标准,上一次标准的制订还是2009年出台的ES5.目前ES6的标准化工作已经完成,14年12月份放出了正式版本. 目前主流的浏览器都支持运行ES6代码,如果你的 ...

  9. python中 datetime模块的详解(转载)

    Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime.time模块我在之前的文章已经有所介绍,它提供 的接口与C标准库time.h基本一致.相比于time模块 ...

  10. (转)Uri详解之——Uri结构与代码提取

    前言:依然没有前言…… 相关博客:1.<Uri详解之——Uri结构与代码提取>2.<Uri详解之二——通过自定义Uri外部启动APP与Notification启动> 上几篇给大 ...