dom4j对xml文档的操作(续)
来源:互联网 发布:highcharts 刷新数据 编辑:程序博客网 时间:2024/06/06 08:24
<?xml version="1.0" encoding="UTF-8"?><书架> <书> <书名 name="jack">Java就业培训教程</书名> <作者>张孝祥</作者> <售价>88元</售价> </书> <书> <书名>JavaScript网页开发</书名> <作者>张孝祥</作者> <售价>28.00元</售价> </书> </书架>
package com.dom4j;import java.io.File;import java.io.FileOutputStream;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;import org.junit.Test;import org.xml.sax.DocumentHandler;public class Demo1 {//在指定的地方添加标签或属性@Testpublic void add1() throws Exception{SAXReader reader = new SAXReader(); Document document = reader.read(new File("src/book.xml")); Element book = (Element) document.getRootElement().elements("书").get(1); List list = book.elements();//[书名、作者、售价] //book.addElement("售价").setText("45元");此处不能用setText()方法,其返回值为void。 Element price = DocumentHelper.createElement("售价"); price.setText("45元 "); price.setAttributeValue("id", "111"); //此处添加一个标签是对list集合的操作,将售价添加到第二个位置,第三个位置的值自动向后移。 list.add(2, price); OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("UTF-8"); XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),format); writer.write( document ); writer.close();}//删除指定的标签。@Testpublic void delete() throws Exception{SAXReader reader = new SAXReader(); Document document = reader.read(new File("src/book.xml")); Element book = (Element) document.getRootElement().elements("书").get(1); Element price = (Element) book.elements("售价").get(0); 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 ); writer.close();}//更新指定的标签@Testpublic void update() throws Exception{SAXReader reader = new SAXReader(); Document document = reader.read(new File("src/book.xml")); Element book = document.getRootElement().element("书"); book.element("售价").setText("88元"); OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("UTF-8"); XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),format); writer.write( document ); writer.close();}}