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();
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章