一、节点的增删改查
1、查询
Book.xml
<?xml version="1.0" encoding="UTF-8"?>
<书架>
<书>
<书名>java从入门到精通</书名>
<作者>张</作者>
<售价>38.元</售价>
</书>
<书>
<书名>java就业培训教程</书名>
<作者>崔</作者>
<售价>18.00元</售价>
</书>
</书架>
查询元素为"书名"的第二个标签体
java程序如下:
public class Dom4jDome2 {
@Test
public void find() throws DocumentException{
SAXReader reader=new SAXReader();
Document dom=reader.read("Book.xml");
Element root=dom.getRootElement();
List<Element> list=root.elements();
Element book2Ele=list.get(1);
System.out.println(book2Ele.element("书名").getText());
}
}
结果是:java就业培训教程
2、增加
为上面的XML文档在书节点下面添加一子个节点<特价>36.99</特价>
java程序如下:
public void add() throws DocumentException, IOException{
//获取SAX阅读器
SAXReader reader=new SAXReader();
//获取XML文档的对象
Document dom=reader.read("Book.xml");
//获取根节点
Element root=dom.getRootElement();
//文档对象创建一个元素
Element priceEle=dom.addElement("特价");
//设置元素特价的标签体
priceEle.setText("36.99");
//获取书节点
Element bookEle=root.element("书");
//将特价节点添加到书上面去
bookEle.add(priceEle);
//将内存中的dom书写入xml文档中,从而使xml中的数据更新
FileWriter writer=new FileWriter("Book.xml");
dom.write(writer);
writer.flush();
writer.close();
}
}
3、修改
修改上面的特价为4.0元
public void update() throws DocumentException, UnsupportedEncodingException, FileNotFoundException{
SAXReader reader=new SAXReader();
Document dom=reader.read("Book.xml");
Element root=dom.getRootElement();
root.element("书").element("特价").setText("4.0元");
XMLWriter writer=new XMLWriter(new FileOutputStream("Book.xml"),OutputFormat.createPrettyPrint());
}
4、删除
删除特价节点
public void del() throws DocumentException, IOException{
SAXReader reader=new SAXReader();
Document dom=reader.read("Book.xml");
Element root=dom.getRootElement();
Element price2Ele=root.element("书").element("特价");
price2Ele.getParent().remove(price2Ele);
XMLWriter writer = new XMLWriter(new FileOutputStream("Book.xml"),OutputFormat.createPrettyPrint());
writer.write(dom);
writer.close();
}
二、属性的增删改查
省略