- dom4j是一个简单、灵活的开放源代码的库(用于解析/处理xml文件) 。dom4j是由早期开发JDOM的人分离出来后独立开发的 。
- 与JDOM不同的是,dom4j使用接口和抽象基类,虽然dom4j的API相对要复杂一些,但他提供了比JDOM更好的灵活性
- Dom4j是一个非常优秀的Java XML API,具有性能优异、功能强大和极易使用的特点 。现在很多软件采用的dom4j
- 使用dom4j开发,需要下载dom4j对象的jar文件
dom4j的jar包下载地址(内有使用案例):dom4j
4.3dom4j获得document对象的方式
开发dom4j要导入dom4j的jar包DOM4j中,获得document对象的方式有三种:
- 读取XML文件,获得document对象
SAXReader reader = new SAXReader();//创建一个解析器Document document = reader.read(new File("src/input.xml"));//XML Document
- 解析XML形式的文本,得到document对象
String text = "<members></members>";//直接对一个字符串的xml文本进行解析Document document = DocumentHelper.parseText(text);
- 主动创建document对象
Document document = DocumentHelper.createDocument();//创建根节点Element root = document.addElement("members");
dom4j应用实例-读取XML文件,获得document对象
- 使用dom4j对students.xml文件进行增删改查
- 重点讲解查询(遍历和指定查询)
- xml增删改使用少,作为拓展,给出案例
- 引入dom4j的依赖的jar包
文章插图
- 在src文件下创建Dom4j_类以及students.xml文件
<?xml version="1.0" encoding="UTF-8" ?><students><student id="01"><name>小龙女</name><gender>女</gender><age>16</age><resume>古墓派掌门人</resume></student><student id="02"><name>欧阳锋</name><gender>男</gender><age>18</age><resume>白驼山弟子</resume></student></students>
Dom4j_.java:import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.io.SAXReader;import org.testng.annotations.Test;import java.io.File;public class Dom4j_ {/*** 演示如何加载xml文件*/@Testpublic void loadXML() throws DocumentException {//得到一个解析器SAXReader reader = new SAXReader();//debug-->看看document对象的属性Document document = reader.read(new File("src/students.xml"));System.out.println(document);}}
- 如下:在
Document document=reader.read(new File("src/students.xml"));
处打上断点:
文章插图
- 点击debug,点击step over,可以看到document对象,它代表整个文档 。
展开document对象,rootElement代表的就是students根元素
文章插图
- rootElement下面有一个content属性,content属性存储着所有的elementData
文章插图
- 点击elementData属性,可以看到该属性有5个对象:
文章插图
和html-dom解析一样,这五个对象中有三个是换行符号\n,其余的两个才是根元素下面的子元素student
- 点击展开索引为1的元素对象(即student元素),可以看到该元素对象中又包含了9个对象,除了换行符之外,其余的对象就是student元素的子元素,name节点,gender节点,age节点和resume节点
经验总结扩展阅读
- 华为nova9pro上市时间及价格_华为nova9pro官方最新曝光
- 微信支付v3接口的 官方 Java SDK
- .net 温故知新:【8】.NET 中的配置从xml转向json
- MySQL的下载、安装、配置
- 苹果13上市时间与价格_苹果13上市时间官方价格
- 荣耀50多久上市_荣耀50什么时候上市
- 【pytest官方文档】解读-开发可pip安装的第三方插件
- 华为台式电脑官网报价及图片_华为台式电脑官方售价是多少
- cf改名怎么改(cf被官方强制改名)
- 华为mate50发布时间确定_华为mate50官方首曝