dom4j增删改查

本文介绍使用DOM4J库进行XML文件的增删改操作。通过具体代码示例展示了如何读取XML文件,修改节点内容,删除指定节点及添加新的节点。此过程涵盖了DOM4J的基本使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

xml文件

<?xml version="1.0" encoding="UTF-8"?>
<books>
<book id="b001">
<title>java core</title>
<price>688</price>
</book>
<book id="b002">
<title>思想政治</title>
<price>515</price>
</book>
<book id="b003">
<title id="188888888">世界历史</title>
<price>545</price>
</book>
<book id="b004">
<title>大学生物</title>
<price>512</price>
</book>
</books>


测试类

package com.cgm.dom4jt;

import java.io.FileOutputStream;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

public class Dom4jCrud {

/**
* @param args
*/
public static void main(String[] args) {

//读取
SAXReader reader = new SAXReader();
try {
Document document = reader.read("book.xml");

//修改节点
Node bookNode = document.selectSingleNode("//book[@id='b003']");
Element booElement = (Element) bookNode;
Element titleElement = booElement.element("title");
titleElement.setText("三毛的故事");

//删除节点

Node boo2Node = document.selectSingleNode("//book[@id='b002']");
Element booElement2 = (Element) boo2Node;
Node parentNode = boo2Node.getParent();
Element paElement = (Element) parentNode;
paElement.remove(boo2Node);

//增加xml节点

Element rootElement = document.getRootElement();
Element newBook = DocumentHelper.createElement("book");
rootElement.add(newBook);
Attribute idAttribute = DocumentHelper.createAttribute(newBook, "id", "b006");
newBook.add(idAttribute);
//创建下面的标题节点
Element titleElements = DocumentHelper.createElement("title");
titleElements.setText("三国演义");
newBook.add(titleElements);
//创建价格节点
Element priceElement = DocumentHelper.createElement("price");
priceElement.setText("257");
newBook.add(priceElement);

XMLWriter writer = new XMLWriter(new FileOutputStream("books.dom4j.xml"));
writer.write(document);
writer.close();
} catch (Exception e) {
e.printStackTrace();
}

}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值