DOM模型和Dom4j

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

猜你喜欢

转载自blog.csdn.net/qq_41459262/article/details/110754144