demo结构图
student.xml
<?xml version="1.0" encoding="UTF-8"?>
<school>
<class id="T62">
<student id="01">
<name>张三</name>
<age>21</age>
</student>
<student id="02">
<name>王二</name>
<age>22</age>
</student>
</class>
<class id="T56">
<student id="01">
<name>李四</name>
<age>23</age>
</student>
<student id="02">
<name>王五</name>
<age>26</age>
</student>
</class>
</school>
Dom4jDemo.java
package dom4j;
import java.io.File;
import java.util.Iterator;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Dom4jDemo {
public static void main(String[] args) throws Exception {
System.out.println("--------开始解析-----------");
Dom4jDemo.iterateWholeXML();
}
public static void iterateWholeXML() {
SAXReader saxReader = new SAXReader();
try {
Document doc = saxReader.read(new File("src/dom4j/student.xml"));
Element root = doc.getRootElement();
// 获取school根节点的所有class节点
for (Iterator classIt = root.elementIterator(); classIt.hasNext();) {
Element element = (Element) classIt.next();
// 获取班级编号
Attribute classAttr = element.attribute("id");
if (classAttr != null) {
String classNum = classAttr.getValue();
System.out.println("班级编号:" + classNum);
// 获取class下面的student
for (Iterator studentIt = element.elementIterator(); studentIt
.hasNext();) {
Element stuElement = (Element) studentIt.next();
Attribute stuAttr = stuElement.attribute("id");
System.out.println("学生id" + stuAttr.getValue());
for (Iterator attrIt = stuElement.elementIterator(); attrIt
.hasNext();) {
Element attrElement = (Element) attrIt.next();
if (attrElement.getName().equals("name")) {
System.out.println("姓名:"
+ attrElement.getText());
}
if (attrElement.getName().equals("age")) {
System.out.println("年龄:"
+ attrElement.getText());
}
}
}
}
}
} catch (Exception e) {
// TODO: handle exception
System.out.println(e.getMessage());
}
}
}
运行结果