XML语言学习5--DOM4J解析+xpath
来源:互联网 发布:mmd数据 编辑:程序博客网 时间:2024/06/05 00:40
Dom4j是一个简单、灵活的开放源代码的库。Dom4j是由早期开发JDOM的人分离出来而后独立开发的。与JDOM不同的是,dom4j使用接口和抽象基类,虽然Dom4j的API相对要复杂一些,但它提供了比JDOM更好的灵活性。
Dom4j是一个非常优秀的Java XML API,具有性能优异、功能强大和极易使用的特点。现在很多软件采用的Dom4j,例如Hibernate,包括sun公司自己的JAXM也用了Dom4j。
删除:
Dom4j是一个非常优秀的Java XML API,具有性能优异、功能强大和极易使用的特点。现在很多软件采用的Dom4j,例如Hibernate,包括sun公司自己的JAXM也用了Dom4j。
使用Dom4j开发,需下载dom4j相应的jar文件。
开放源代码使用技巧:docs->index.html->quick start
<span style="white-space:pre"></span>SAXReader reader = new SAXReader(); Document document = reader.read(new File("src/book1.xml")); Element root = document.getRootElement();
查询标签:
@Test public void read() throws DocumentException { SAXReader reader = new SAXReader(); Document document = reader.read(new File("src/book1.xml")); Element root = document.getRootElement(); List list = root.elements("书"); Element book = (Element)list.get(1); Element book_name = book.element("书名"); System.out.println(book_name.getText()); }
查询属性:
// <书 name="yyyyyyy"> @Test public void readAttribute() throws DocumentException { 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); }
增加节点:
// 增加售价节点 @Test public void add() throws DocumentException, IOException { 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(); XMLWriter writer = new XMLWriter(new FileOutputStream("src/book1.xml"),format); writer.write(document); writer.close(); }
// 修改: <售价>109</售价> @Test public void update() throws IOException, DocumentException { 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(); XMLWriter writer = new XMLWriter(new FileOutputStream("src/book1.xml"),format); writer.write(document); writer.close(); }
删除:
// 删除节点<售价>109</售价> @Test public void delete() throws DocumentException, IOException { 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(); XMLWriter writer = new XMLWriter(new FileOutputStream("src/book1.xml"),format); writer.write(document); writer.close(); }
指定节点的插入:
// 向指定位置增加售价节点 @Test public void add2() throws DocumentException, IOException { 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(); XMLWriter writer = new XMLWriter(new FileOutputStream("src/book1.xml"),format); writer.write(document); writer.close(); }
xPath的使用:
查找某一节点:
@Test public void findWithXpath() throws DocumentException { SAXReader reader = new SAXReader(); Document document = reader.read(new File("src/book1.xml")); Element name = (Element) document.selectNodes("//书名").get(1); System.out.println(name.getText()); }
@Test public void findUsers() throws DocumentException, IOException { /* BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("请输入用户名:"); String username = br.readLine(); System.out.print("请输入密码:"); String password = br.readLine();*/ String username = "aaa"; String password = "123"; 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
- XML语言学习5--DOM4J解析+xpath
- DOM4J+XPath 解析XML
- xml解析dom4j xpath方式
- dom4j使用XPath解析xml
- xpath和dom4j解析xml
- 使用dom4j的xPath解析XML
- dom4j(xpath)解析xml一例
- Dom4j解析XML文件(Xpath)
- XML 的 Dom4j 解析范例,以及 XPath
- DOM4J解析XML(强大的XPath)
- xml解析 dom4j通过XPath找标签
- 采用Dom4j及xpath解析xml文件
- 使用dom4j的xPath解析XML
- xml解析-dom4j对XPATH的支持
- java---dom4j+xpath演示解析XML文档
- 使用dom4j的xPath解析XML
- Dom4j和XPath的XML解析技术
- XML介绍以及XML解析入门---DOM4J解析、XPath解析
- apktool 反编译 Input file was not found or was not readable.问题解决方案
- C#中数组、ArrayList和List三者的区别
- endnote使用方法大全,endnote教程
- Git环境搭建与使用说明
- LA4998 Simple Encryption
- XML语言学习5--DOM4J解析+xpath
- CSS学习笔记
- opencv3逼近多边形曲线-approxPolyDP函数在图像中的应用
- [实验-视频过程]启动关闭数据库的过程
- class与struct的区别
- React- Native
- Android adb命令的使用方法
- android studio导入.so库的正确方法
- c语言的循环之for循环