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();}}