有一个xml文档
<?xml version="1.0" encoding="utf-8"?>
<书架>
<书>
<书名 name="xxxx">java web</书名>
<作者>张大</作者>
<价格>102</价格>
<评价>well</评价>
</书>
<书>
<书名>spring</书名>
<作者>呜呜</作者>
<价格>55</价格>
</书>
</书架>
读取文档的内容(第二本书的书名)
public void read() throws DocumentException{
SAXReader reader = new SAXReader();
Document document = reader.read(new File("src/book.xml"));
Element root = document.getRootElement();
Element book = (Element) root.elements("书").get(1);
String value = book.element("书名").getText();
System.out.println(value);
}
读取文档的属性(name中的属性)
public void readAtrr() throws DocumentException{
SAXReader reader = new SAXReader();
Document document = reader.read(new File("src/book.xml"));
Element root = document.getRootElement();
Element book = (Element) root.elements("书").get(0);
String value = book.element("书名").attribute("name").getValue();
System.out.println(value);
}
在默认位子添加一个评价
public void add() throws Exception{
SAXReader reader = new SAXReader();
Document document = reader.read(new File("src/book.xml"));
Element book = document.getRootElement().element("书");
book.addElement("评价").setText("well");
//更新到xml,注意乱码问题
XMLWriter writer = new XMLWriter(
new OutputStreamWriter(new FileOutputStream("src/book.xml"), "utf-8")
);
writer.write( document ); //UTF-8
writer.close();
}
在指定位子添加(价格上)
public void add3() throws Exception{
SAXReader reader = new SAXReader();
Document document = reader.read(new File("src/book.xml"));
Element book = document.getRootElement().element("书");
List list = book.elements();
//创建要加入的节点
Element evaluation = DocumentHelper.createElement("评价");
evaluation.setText("good,good");
list.add(2, evaluation);
//更新到xml,注意乱码问题
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");//和xml文档一致
XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),format );
writer.write( document ); //UTF-8
writer.close();
}
删除一个评价
public void delete() throws Exception{
SAXReader reader = new SAXReader();
Document document = reader.read(new File("src/book.xml"));
List list = document.getRootElement().element("书").elements("评价");
list.remove(0);
//更新到xml,注意乱码问题
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");//和xml文档一致
XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),format );
writer.write( document ); //UTF-8
writer.close();
}
更改节点
public void update() throws Exception{
SAXReader reader = new SAXReader();
Document document = reader.read(new File("src/book.xml"));
Element book = (Element) document.getRootElement().elements("书").get(1);
book.element("作者").setText("哈哈!");
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");//和xml文档一致
XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),format );
writer.write( document ); //UTF-8
writer.close();
}