DOM4J解析

book.xml

<?xml version="1.0" encoding="UTF-8"?>
<book>
    <name>java</name>
    <author>ldh</author>
</book>

查询 book.xml 中 name 节点的文本内容

package DOM4J;

import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class TestDOM4J {

    public static void main(String[] args) throws Exception {
        run1();
    }

    private static void run1() throws Exception {
        // 解析器对象
        SAXReader reader = new SAXReader();
        Document document = reader.read("src/book.xml");
        // 获取根根节点
        Element rootElement = document.getRootElement();
        List<Element> books = rootElement.elements("name");
        for(Element e : books){
            System.out.println(e.getName()+" : "+e.getText());
        }
    }
}

在book 节点下添加子节点price

private static void run2() throws Exception {
        //获取解析器对象
        SAXReader reader = new SAXReader();
        Document document = reader.read("src/book.xml");        
        Element rootElement = document.getRootElement();
        rootElement.addElement("price").setText("10$");
        //将document回写进文件中,并且是格式化写入
        OutputFormat outputFormat = OutputFormat.createPrettyPrint();
        XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),outputFormat);
        writer.write(document);
        writer.close();
    }

在指定的们置添加节点,例如在name 节点和author 节点之间添加一个节点

private static void run3() throws Exception {
        SAXReader reader = new SAXReader();
        Document document = reader.read("src/book.xml");
        Element rootElement = document.getRootElement();
        List elements = rootElement.elements();
        // 创建一个节点
        Element date = DocumentHelper.createElement("时间");
        date.setText("2016-10-10");
        // 在索引值等于1 的位置添加
        elements.add(1, date);
        // 回写
        XMLWriter xmlWriter = new XMLWriter(
                new FileOutputStream("src/book.xml"),
                new OutputFormat().createPrettyPrint());
        xmlWriter.write(document);
        xmlWriter.close();
    }

删除节点author

private static void run4() throws Exception {
        // TODO Auto-generated method stub
        SAXReader reader = new SAXReader();
        Document document = reader.read("src/book.xml");
        Element rootElement = document.getRootElement();
        Element date = rootElement.element("author");
        boolean remove = rootElement.remove(date);
        System.out.println("delete : " + remove);
        // 回写
        XMLWriter xmlWriter = new XMLWriter(
                new FileOutputStream("src/book.xml"),
                new OutputFormat().createPrettyPrint());
        xmlWriter.write(document);
        xmlWriter.close();
    }

修改指定节点(author)的文本内容(lin)

private static void run5() throws Exception {
        // TODO Auto-generated method stub
        SAXReader reader = new SAXReader();
        Document document = reader.read("src/book.xml");
        Element rootElement = document.getRootElement();
        Element author = rootElement.element("author");
        author.setText("lin");
        // 回写
        XMLWriter xmlWriter = new XMLWriter(
                new FileOutputStream("src/book.xml"),
                new OutputFormat().createPrettyPrint());
        xmlWriter.write(document);
        xmlWriter.close();
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值