Java怎么使用DOM4J库操作XML_Java DOM4J库增删改查XML节点教程

DOM4J是java中操作xml的高效库,支持增删改查。首先通过mavengradle引入依赖;使用SAXReader读取XML并解析节点信息;通过addElement添加新元素;修改现有元素内容后,需用XMLWriter将Document写回文件;删除节点时应使用Iterator.remove()避免异常,并格式化输出保存。所有操作均需重新写入文件以持久化结果。

Java怎么使用DOM4J库操作XML_Java DOM4J库增删改查XML节点教程

使用DOM4J操作XML文件在java开发中非常常见,尤其适用于需要解析、修改或生成XML结构的场景。DOM4J是一个开源的、易用且高性能的Java库,支持XPath、命名空间和灵活的树形结构操作。下面介绍如何使用DOM4J实现XML文件的增删改查(CRUD)操作。

引入DOM4J依赖

如果你使用Maven项目,在pom.xml中添加以下依赖:

<dependency>
  <groupId>org.dom4j</groupId>
  <artifactId>dom4j</artifactId>
  <version>2.1.3</version>
</dependency>

Gradle项目则添加:
implementation ‘org.dom4j:dom4j:2.1.3’

读取XML文件并解析(查)

使用SAXReader读取XML文件,获取Document对象后可遍历节点。

示例XML(students.xml):

立即学习Java免费学习笔记(深入)”;

<?xml version=”1.0″ encoding=”UTF-8″?>
<school>
  <student id=”1″>
    <name>张三</name>
    <age>20</age>
  </student>
  <student id=”2″>
    <name>李四</name>
    <age>22</age>
  </student>
</school>

Java代码读取并打印所有学生信息:

SAXReader reader = new SAXReader();
Document document = reader.read(new File(“students.xml”));
Element root = document.getRootElement();
for (Iterator i = root.elementIterator(“student”); i.hasNext();) {
  Element student = (Element) i.next();
  String id = student.attributeValue(“id”);
  String name = student.elementText(“name”);
  String age = student.elementText(“age”);
  System.out.println(“ID: ” + id + “, 姓名: ” + name + “, 年龄: ” + age);
}

新增XML节点(增)

在根元素下添加新的student节点:

Java怎么使用DOM4J库操作XML_Java DOM4J库增删改查XML节点教程

库宝AI

库宝AI是一款功能多样的智能伙伴助手,涵盖AI写作辅助、智能设计、图像生成、智能对话等多个方面。

Java怎么使用DOM4J库操作XML_Java DOM4J库增删改查XML节点教程109

查看详情 Java怎么使用DOM4J库操作XML_Java DOM4J库增删改查XML节点教程

Element newStudent = root.addElement(“student”);
newStudent.addAttribute(“id”, “3”);
newStudent.addElement(“name”).setText(“王五”);
newStudent.addElement(“age”).setText(“21”);
// 保存到文件
XMLWriter writer = new XMLWriter(new FileWriter(“students.xml”));
writer.write(document);
writer.close();

注意:每次修改后需重新写入文件才能持久化。

修改XML节点内容(改)

将id为”1″的学生年龄改为21:

for (Iterator i = root.elementIterator(“student”); i.hasNext();) {
  Element student = (Element) i.next();
  if (“1”.equals(student.attributeValue(“id”))) {
    student.element(“age”).setText(“21”);
    break;
  }
}
// 保存修改
XMLWriter writer = new XMLWriter(new FileWriter(“students.xml”));
writer.write(document);
writer.close();

删除XML节点(删)

删除id为”2″的学生节点:

for (Iterator i = root.elementIterator(“student”); i.hasNext();) {
  Element student = (Element) i.next();
  if (“2”.equals(student.attributeValue(“id”))) {
    i.remove(); // 使用迭代器安全删除
    break;
  }
}
// 保存结果
Outputformat format = OutputFormat.createPrettyPrint(); // 格式化输出
XMLWriter writer = new XMLWriter(new FileWriter(“students.xml”), format);
writer.write(document);
writer.close();

基本上就这些。DOM4J的API设计直观,结合Iterator和Element方法能高效完成XML操作。关键点是修改后记得写回文件,并注意使用Iterator.remove()避免并发修改异常。

上一篇
下一篇
text=ZqhQzanResources