Dom4j学习笔记--第三篇

本文介绍使用DOM4J库进行XML文件的基本操作方法,包括创建、修改、新增及删除节点等过程。通过实例演示了如何创建XML文档、添加元素与属性、修改节点内容以及删除特定节点。

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

5.写入XML文件

try {
            XMLWriter writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream("config.xml"), "UTF-8"));
            writer.write(document);
            writer.close();
} catch (Exception ex) {
            ex.printStackTrace();
}

6.创建XML文件

String fileName="c:\\config.xml";

Document document=DocumentHelper.createDocument();//建立document对象,用来操作xml文件

Element booksElement=document.addElement("books");//建立根节点

booksElement.addComment("This is a test for dom4j ");//加入一行注释

Element bookElement=booksElement.addElement("book");//添加一个book节点

bookElement.addAttribute("show","yes");//添加属性内容

Element titleElement=bookElement.addElement("title");//添加文本节点

titleElement.setText("ajax in action");//添加文本内容

try{

    XMLWriter writer=new XMLWriter(new FileWriter(new File(fileName)));

     writer.write(document);

    writer.close();

}catch(Exception e){

    e.printStackTrace();

}

7.新增节点及其子节点

Element menuElement = root.addElement("menu");

Element engNameElement = menuElement.addElement("engName");

engNameElement.setText(catNameEn);

Element chiNameElement = menuElement.addElement("chiName");

chiNameElement.setText(catName);

8.修改节点

String oldStr = "c:/text.xml";

String newStr = "c:/text1.xml";

Document document = null;

//修改节点的属性

try {

SAXReader saxReader = new SAXReader(); // 用来读取xml文档

document = saxReader.read(new File(oldStr)); // 读取xml文档

List list = document.selectNodes("/books/book/@show");// 用xpath查找节点book的属性

Iterator iter = list.iterator();

while (iter.hasNext()) {

Attribute attribute = (Attribute) iter.next();

if (attribute.getValue().equals("yes"))

    attribute.setValue("no");

}

} catch (Exception e) {

    e.printStackTrace();

}

//修改节点的内容

try {

SAXReader saxReader = new SAXReader(); // 用来读取xml文档

document = saxReader.read(new File(oldStr)); // 读取xml文档

List list = document.selectNodes("/books/book/title");// 用xpath查找节点book的内容

Iterator iter = list.iterator();

while (iter.hasNext()) {

Element element = (Element) iter.next();

element.setText("xxx");// 设置相应的内容

}

} catch (Exception e) {

        e.printStackTrace();

}

9.删除节点

String oldStr = "c:/text.xml";

String newStr = "c:/text1.xml";

Document document = null;

try {

SAXReader saxReader = new SAXReader();// 用来读取xml文档

document = saxReader.read(new File(oldStr));// 读取xml文档

List list = document.selectNodes("/books/book");// 用xpath查找对象

Iterator iter = list.iterator();

while (iter.hasNext()) {

Element bookElement = (Element) iter.next();

// 创建迭代器,用来查找要删除的节点,迭代器相当于指针,指向book下所有的title节点

Iterator iterator = bookElement.elementIterator("title");

while (iterator.hasNext()) {

Element titleElement = (Element) iterator.next();

if (titleElement.getText().equals("ajax in action")) {

bookElement.remove(titleElement);

}

}

}

}

} catch (Exception e) {

        e.printStackTrace();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值