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();
}