dom4j

来源:互联网 发布:centos7 bugzilla端口 编辑:程序博客网 时间:2024/06/16 19:55

在上一章中,用的是sun公司提供的api对xml解析,有点繁琐,所以其他组织,开发了简便的dom4j对xml解析

开源的api对dom4j的使用解释的很清楚,所以不再啰嗦,直接上代码

api下载地址:http://download.csdn.net/detail/u012092620/8509861

<?xml version="1.0" encoding="UTF-8"?><书架>   <书 name="yyyyyyy">     <售价>209元</售价>      <书名>Java教程</书名>      <作者>wht</作者>      <售价>19元</售价>   </书>    <书>     <书名>JavaScript网页开发</书名>      <作者>张san</作者>      <售价>28.00元</售价>   </书> </书架>



package cn.itcast.dom4j;import java.io.File;import java.io.FileOutputStream;import java.util.List;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;import org.junit.Test;public class Demo1 {//读取xml文档数据:<书名>Java就业培训教程</书名>@Testpublic void read() throws Exception{SAXReader reader = new SAXReader();Document document = reader.read(new File("src/book1.xml"));Element root = document.getRootElement();Element bookname = root.element("书").element("书名");System.out.println(bookname.getText());}//<书 name="yyyyyyy">@Testpublic void readAttr() throws Exception{SAXReader reader = new SAXReader();Document document = reader.read(new File("src/book1.xml"));Element root = document.getRootElement();String value = root.element("书").attributeValue("name");System.out.println(value);}//向xml文档中添加<售价>19元</售价>@Testpublic void add() throws Exception{SAXReader reader = new SAXReader();Document document = reader.read(new File("src/book1.xml"));Element price = DocumentHelper.createElement("售价");price.setText("19元");document.getRootElement().element("书").add(price);OutputFormat format = OutputFormat.createPrettyPrint();format.setEncoding("UTF-8");XMLWriter writer = new XMLWriter(new FileOutputStream("src/book1.xml"),format);writer.write(document);  //utf-8writer.close();}//修改:<售价>109</售价>  为209@Testpublic void update() throws Exception{SAXReader reader = new SAXReader();Document document = reader.read(new File("src/book1.xml"));Element price = (Element) document.getRootElement().element("书").elements("售价").get(1);price.setText("209元");OutputFormat format = OutputFormat.createPrettyPrint();format.setEncoding("UTF-8");XMLWriter writer = new XMLWriter(new FileOutputStream("src/book1.xml"),format);writer.write(document);  //utf-8writer.close();}//删除:<售价>109</售价>@Testpublic void delete() throws Exception{SAXReader reader = new SAXReader();Document document = reader.read(new File("src/book1.xml"));Element price = (Element) document.getRootElement().element("书").elements("售价").get(0);price.getParent().remove(price);OutputFormat format = OutputFormat.createPrettyPrint();format.setEncoding("UTF-8");XMLWriter writer = new XMLWriter(new FileOutputStream("src/book1.xml"),format);writer.write(document);  //utf-8writer.close();}//向指定位置增加售价结点@Testpublic void add2() throws Exception{SAXReader reader = new SAXReader();Document document = reader.read(new File("src/book1.xml"));Element price = DocumentHelper.createElement("售价");price.setText("19元");List list = document.getRootElement().element("书").elements();list.add(1, price);OutputFormat format = OutputFormat.createPrettyPrint();format.setEncoding("UTF-8");XMLWriter writer = new XMLWriter(new FileOutputStream("src/book1.xml"),format);writer.write(document);  //utf-8writer.close();}@Testpublic void findWithXpath() throws Exception{SAXReader reader = new SAXReader();Document document = reader.read(new File("src/book1.xml"));Element e = (Element) document.selectNodes("//书名").get(1);System.out.println(e.getText());}@Testpublic void findUser() throws Exception{String username = "aaa";String password = "1233";SAXReader reader = new SAXReader();Document document = reader.read(new File("src/users.xml"));Element e = (Element) document.selectSingleNode("//user[@username='"+username+"' and @password='"+password+"']");if(e!=null){System.out.println("让用户登陆成功!!");}else{System.out.println("用户名和密码不正确!!");}}}


0 0
原创粉丝点击