package it.git.dom4j;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class Demo {
public void read() throws DocumentException {
//读取XML文档数据
SAXReader reader= new SAXReader();
Document document= reader.read(new File("src/book.xml"));
Element root = document.getRootElement();
//获取节点的值
Element bookName=root.element("书").element("书名");
System.out.println(bookName.getText());
/*//获取属性的值
String value=root.element("书").attributeValue("name");
System.out.println(value);*/
}
//想XML文档中添加节点
public void add() throws DocumentException, IOException{
SAXReader reader= new SAXReader();
Document document= reader.read(new File("src/book.xml"));
//创建节点
Element element=DocumentHelper.createElement("售价");
element.setText("100");
document.getRootElement().element("书").add(element);
//写入XML文档
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
/*XMLWriter writer = new XMLWriter(new FileWriter("src/book.xml"));*/
XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),format);
writer.write("document");//utf-8
writer.close();
}
//乱码问题: FileWriter 默认为 gb2312
public void update() throws DocumentException, IOException {
SAXReader reader = new SAXReader();
Document document = reader.read(new File("src/book.xml"));
Element price = document.getRootElement().element("书").element("售价");
price.setText("300");
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),
format);
writer.write("document");// utf-8
writer.close();
}
public void delete() throws DocumentException, IOException{
SAXReader reader = new SAXReader();
Document document = reader.read(new File("src/book.xml"));
Element price = document.getRootElement().element("书").element("售价");
price.getParent().remove(price);
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),
format);
writer.write("document");// utf-8
writer.close();
}
//向指定位置添加节点
public void add2() throws DocumentException{
SAXReader reader= new SAXReader();
Document document= reader.read(new File("src/book.xml"));
//创建节点
Element element=DocumentHelper.createElement("售价");
element.setText("100");
List list =document.getRootElement().element("书").elements();
list.add(1, element);
}
}
dom4j操作XML文档
最新推荐文章于 2024-10-18 18:49:38 发布