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
- Dom4j
- dom4j
- DOM4J
- DOM4j
- Dom4j
- Dom4j
- dom4j
- dom4j
- dom4j
- dom4j
- dom4j
- dom4j
- dom4j
- dom4j
- DOM4J
- dom4j
- dom4j
- Dom4j
- 机器学习Python实现 SVD 分解
- QML - 动态柱状图
- 素数筛选
- nginx 变量 获取 ngx_http_script_run 详解
- 三种思路实现自定义404页面:Tomcat、SpringMVC精准匹配、重写DispatchServlet
- dom4j
- Android app结构
- MongoDB Sharding集群部署
- C#配置文件加密
- UML建模——使用EA工具开发时序图实践及经验
- 20150317 实习之——余世维视频(上)
- 可变参数列表函数实现
- 多线程运行同步锁synchronize的一些实战心得
- d3,颜色插值