转:
 
2013年11月28日 10:48:59 今晚打酱油8 阅读数:8506更多
 
 
 
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xj626852095/article/details/17002321
Dom4j 说明文档:http://blog.csdn.net/xj626852095/article/details/17000741
xPath说明文档:  http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html
要解析的xml文件
- 
<?xml version="1.0" encoding="UTF-8"?>
 
 
- 
 
 
- 
 
- 
 
- 
 
- 
 
- 
 
- 
 
- 
 
- 
 
- 
<书名 name="xxxxx">JavaScript网页开发</书名> 
 
 
- 
 
- 
 
- 
 
- 
 
- 
 
- 
 
- 
<user username="kevin" passwd="123456"/>
 
 
- 
<user username="xiang" passwd="234567"/> 
 
 
- 
 
 
- 
 
- 
 
 
- 
import static org.junit.Assert.*;
 
 
- 
 
 
- 
 
- 
import java.io.FileOutputStream;
 
 
- 
import java.io.FileWriter;
 
 
- 
import java.io.IOException;
 
 
- 
import java.io.OutputStreamWriter;
 
 
- 
 
- 
 
 
- 
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;
 
 
- 
 
- 
import org.xml.sax.DocumentHandler;
 
 
- 
 
 
- 
public class Dom4j_Test {
 
 
- 
 
 
- 
 
- 
 
- 
public void test4() throws DocumentException, IOException {
 
 
- 
SAXReader reader = new SAXReader();
 
 
- 
Document document = reader.read(new File("src/book1.xml"));
 
 
- 
String bookName = document.selectSingleNode("//书名").getText();
 
 
- 
System.out.println("bookName: " + bookName);
 
 
- 
 
 
- 
 
- 
String username = "kevin";
 
 
- 
String passwd = "123456";
 
 
- 
Node node = document.selectSingleNode
 
 
- 
("//user[@username=‘"+username+"‘ and @passwd=‘"+passwd+"‘]");
 
 
- 
 
- 
System.out.println("不是注册用户");
 
 
- 
 
- 
System.out.println("注册用户");
 
 
- 
 
 
- 
 
- 
 
 
- 
 
- 
 
- 
public void test1() throws DocumentException, IOException {
 
 
- 
SAXReader reader = new SAXReader();
 
 
- 
Document document = reader.read(new File("src/book1.xml"));
 
 
- 
Element root = document.getRootElement();
 
 
- 
Element book = root.elements("书").get(1);
 
 
- 
String bookName = book.element("书名").getText();
 
 
- 
String bookAttr = book.element("书名").attributeValue("name");
 
 
- 
System.out.println("bookName: " + bookName);
 
 
- 
System.out.println("bookAttr: " + bookAttr);
 
 
- 
 
 
- 
 
- 
book.addAttribute("memony", "有优惠价");
 
 
- 
book.addElement("优惠价").setText("8折");
 
 
- 
OutputFormat format = OutputFormat.createPrettyPrint();
 
 
- 
format.setEncoding("UTF-8");
 
 
- 
XMLWriter writer = new XMLWriter(
 
 
- 
new OutputStreamWriter(new FileOutputStream("src/book1.xml")), format);
 
 
- 
 
- 
 
- 
 
- 
 
 
- 
 
- 
 
- 
public void test2() throws DocumentException, IOException {
 
 
- 
SAXReader reader = new SAXReader();
 
 
- 
Document document = reader.read(new File("src/book1.xml"));
 
 
- 
Element book = document.getRootElement().element("书");
 
 
- 
List list = book.elements();
 
 
- 
 
 
- 
Element price = DocumentHelper.createElement("打折价");
 
 
- 
 
- 
 
- 
 
 
- 
OutputFormat format = OutputFormat.createPrettyPrint();
 
 
- 
format.setEncoding("UTF-8");
 
 
- 
XMLWriter writer = new XMLWriter(
 
 
- 
new OutputStreamWriter(new FileOutputStream("src/book1.xml")), format);
 
 
- 
 
- 
 
- 
 
- 
 
 
- 
 
- 
 
- 
public void test3() throws DocumentException, IOException {
 
 
- 
SAXReader reader = new SAXReader();
 
 
- 
Document document = reader.read(new File("src/book1.xml"));
 
 
- 
Element priceTmp = document.getRootElement().element("书").element("打折价");
 
 
- 
 
- 
priceTmp.getParent().remove(priceTmp);
 
 
- 
 
 
- 
Element price = document.getRootElement().element("书").element("售价");
 
 
- 
 
- 
 
- 
 
 
- 
OutputFormat format = OutputFormat.createPrettyPrint();
 
 
- 
format.setEncoding("UTF-8");
 
 
- 
XMLWriter writer = new XMLWriter(
 
 
- 
new OutputStreamWriter(new FileOutputStream("src/book1.xml")), format);
 
 
- 
 
- 
 
- 
 
- 
 
 
Dom4j 操作, 节点查找 添加 删除 修改 。。。xPath
原文:https://www.cnblogs.com/libin6505/p/10120468.html