DOM文档对象模型
DOM(Document Object Model)定义了访问和操作XML文档的标准方法,DOM把XML文档作为树结构来查看,能够通过DOM数来读写所有元素。
XML文档及其树结构:
Dom4j
Dom4j是一个易用的开源的库,用于解析XML。应用于Java,具有性能优异,功能强大和及其易于使用等特点,Dom4j将XML视为Document对象,XML标签被Dom4j定义为ELement对象。
Dom4j遍历XML
使用java的Dom4j包来进行XML遍历,我们下载Dom4j包(点击网址),下载自己的jdk版本选择对应的Dom4j版本,这里我们选择java8+对应的版本
将其导入到java项目中,导入之后右击dom4j.jar选择bulid path->add to build path
之后就可以看到该包出现在reference libriaries中,表明该包已经导入到项目中
下面是一段简单地使用Dom4j进行XML文件操作的实例
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hr SYSTEM "hr.dtd">
<!-- 人力资源管理系统 -->
<hr>
<employee no="3309">
<name>张三</name>
<age>32</age>
<salary>9200</salary>
<department>
<name>会计部</name>
<addr>XX大厦</addr>
</department>
</employee>
<employee no="3329">
<name>李四</name>
<age>32</age>
<salary>9200</salary>
<department>
<name>会计部</name>
<addr>XX大厦</addr>
</department>
</employee>
</hr>
对应的Dom4j
package dom4j;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class HrReader {
public void readXml() {
String file = "................"; //xml文件路径
// SAXReader类是读取XML文件的核心类
SAXReader reader = new SAXReader();
try {
Document document = reader.read(file);
Element root = document.getRootElement();
List<Element> employees = root.elements("employee");
for (Element employee : employees) {
System.out.println(employee.elementText("name"));
System.out.println(employee.attribute("no").getText());
System.out.println(employee.elementText("age"));
System.out.println(employee.elementText("salary"));
Element department = employee.element("department");
System.out.println(department.elementText("name"));
System.out.println(department.elementText("addr"));
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
HrReader reader = new HrReader();
reader.readXml();
}
}
console输出为:
张三
330932
9200
会计部
XX大厦
李四
332932
9200
会计部
XX大厦
Dom4j还有很多其他功能,详情见Dom4j api