dom4j解析xml增删改查

来源:互联网 发布:linux rand 编辑:程序博客网 时间:2024/06/13 02:00
<span style="font-size:18px;"><strong>记得导包</strong></span>
<strong><span style="font-size:18px;">1.新建Demo4jDemo2.java:</span></strong>
<strong><span style="font-size:18px;">import java.io.FileOutputStream;import java.util.List;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;public class Demo4jDemo2 {//操作元数据public void attr() throws Exception{SAXReader reader = new SAXReader();Document dom = reader.read("book.xml");Element root = dom.getRootElement();Element bookEle = root.element("书");//bookEle.addAttribute("出版社", "传智出版社");//增//String str = bookEle.attributeValue("出版社");//查//System.out.println(str);Attribute attr = bookEle.attribute("出版");//删attr.getParent().remove(attr);XMLWriter writer = new XMLWriter(new FileOutputStream("book.xml"),OutputFormat.createPrettyPrint());writer.write(dom);writer.close();}//1、增public void add()throws Exception{SAXReader reader = new SAXReader();Document dom = reader.read("book.xml");Element root = dom.getRootElement();//1、凭空创建<特价>节点,设置标签体Element price2Ele = DocumentHelper.createElement("特价");price2Ele.setText("40.0元");//2、获取父标签<书>将特价节点挂载上去Element bookEle = root.element("书");bookEle.add(price2Ele);//将内存中的dom树会写到xml文件中,从而使xml中的数据进行更新//FileWriter writer = new FileWriter("book.xml");//dom.write(writer);//writer.flush();//writer.close();XMLWriter writer = new XMLWriter(new FileOutputStream("book.xml"),OutputFormat.createPrettyPrint());writer.write(dom);writer.close();}//2、删public void del() throws Exception{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();}//3.改public void update()throws Exception{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());writer.write(dom);writer.close();}//4.查public void find() throws Exception{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());//结果:JavaScript网页开发}}</span></strong>


2.新建Dom4jDemo1.java:

public class Dom4jDemo1 {public static void main(String[] args) throws Exception {////1.获取解析器//SAXReader reader = new SAXReader();////2.解析xml获取代表整个文档的dom对象//Document dom = reader.read("book.xml");////3.获取根节点:书架//Element root = dom.getRootElement();////4.获取书名进行打印//String bookName = root.element("书").element("书名").getText();//System.out.println(bookName);Demo4jDemo2 dom=new Demo4jDemo2();dom.attr();}}

根目录下:新建book.xml:

<?xml version="1.0" encoding="UTF-8"?><书架>   <书>     <书名>Java就业培训教程</书名>      <作者>张孝祥</作者>      <售价>39.00元</售价>      <特价>4.0元</特价>      <特价>40.0元</特价>   </书>    <书>     <书名>JavaScript网页开发</书名>      <作者>张孝祥</作者>      <售价>28.00元</售价>   </书> </书架>



0 0
原创粉丝点击