今天我们用DOM4J来解析XML文件。dom4j是最常用的XML解析工具,下载地址在http://www.dom4j.org/dom4j-1.6.1/。
首先我们来用dom4j生成一个简单的XML文件。
public class DOM4J01 {
public static void main(String[] args) {
Document document = DocumentHelper.createDocument();
Element studentElement = document.addElement("student");
studentElement.addAttribute("id", "001");
studentElement.addAttribute("xx", "xx");
Element name = studentElement.addElement("name");
name.setText("张三");
Element sex = studentElement.addElement("sex");
sex.setText("男");
Element age = studentElement.addElement("age");
age.setText("20");
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
try {
XMLWriter writer = new XMLWriter(new FileOutputStream("src/student3.xml"), format);
writer.write(document);
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
生成的XML文件,student3.xml:
<?xml version="1.0" encoding="UTF-8"?>
<student id="001" xx="xx">
<name>张三</name>
<sex>男</sex>
<age>20</age>
</student>
可以看到dom4j比jdom多了一个格式化的工具。
下面我们用dom4j来解析一个复杂的XML文件,students.xml。
<?xml version="1.0" encoding="UTF-8"?>
<students>
<student id="001">
<name>张三</name>
<sex>男</sex>
<age>20</age>
</student>
<student id="002">
<name>李四</name>
<sex>女</sex>
<age>21</age>
</student>
</students>
public class DOM4J02 {
public static void main(String[] args) throws Exception {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read("src/students.xml");
Element rootElement = document.getRootElement();
Iterator iter = rootElement.elementIterator();
while (iter.hasNext()) {
Element studentElement = (Element) iter.next();
System.out.println("学号" + studentElement.attributeValue("id"));
System.out.println("姓名" + studentElement.elementText("name"));
System.out.println("性别" + studentElement.elementText("sex"));
System.out.println("年龄" + studentElement.elementText("age"));
System.out.println("--------------");
}
}
}