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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值