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