ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

XML 解析器 — Dom4j

2021-08-03 13:03:27  阅读:299  来源: 互联网

标签:XML 解析器 Dom4j 对象 标签 元素 xml book Document


一、Dom4j 技术概述

  先是 Jdom 在 dom 基础上进行了封装,而 dom4j 又对 jdom 进行了封装。

  DOM4J是一个开源的,基于Java的库来解析XML文档,它具有高度的灵活性,高性能和内存效率的API。这是java的优化,使用Java集合像列表和数组。它可以使用DOM,SAX,XPath和XSLT。它解析大型XML文档时具有极低的内存占用。

二、DOM4j 类库

  1、类库

    官网下载需要的 jar 包:Dom4J官网

    Dom4j 在线 API

  2、使用

三、DOM4j 解析步骤

  步骤

1、先加载 xml 文件创建 Document 对象

2、通过 Document 对象拿到根元素对象

3、通过根元素.elelemts(标签名); 可以返回一个集合, 这个集合里放着。 所有你指定的标签名的元素对象
4、获取需要操作的元素,进行相应的操作

  XML 文件:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <books>
 3 <book sn="123">
 4     <name>Java</name>
 5     <price>9.9</price>
 6     <author>老张</author>
 7 </book>
 8 <book sn="456">
 9     <name>Python</name>
10     <price>99.99</price>
11     <author>老李</author>
12 </book>
13 </books>

 

  测试解析文件:

 1     /*
 2      * dom4j 获取 Documet 对象
 3      */
 4     @Test
 5     public void getDocument() throws DocumentException {
 6         // 要创建一个 Document 对象, 需要我们先创建一个 SAXReader 对象
 7         SAXReader reader = new SAXReader();
 8         // 这个对象用于读取 xml 文件, 然后返回一个 Document。
 9         Document document = reader.read("src/books.xml");
10         // 打印到控制台, 看看是否创建成功
11         System.out.println(document);
12     }

 

  解析XML文件:

 1 /*
 2  * 读取 xml 文件中的内容
 3  */
 4   @Test
 5 public void readXML() throws DocumentException {
 6     // 需要分四步操作:
 7     // 第一步, 通过创建 SAXReader 对象。 来读取 xml 文件, 获取 Document 对象
 8     // 第二步, 通过 Document 对象。 拿到 XML 的根元素对象
 9     // 第三步, 通过根元素对象。 获取所有的 book 标签对象
10     // 第四步, 遍历每个 book 标签对象。 然后获取到 book 标签对象内的每一个元素, 再通过 getText() 方法拿到起始标签和结束标签之间的文本内容
11     // 第一步, 通过创建 SAXReader 对象。 来读取 xml 文件, 获取 Document 对象
12       SAXReader reader = new SAXReader();
13       Document document = reader.read("src/books.xml");
14     // 第二步, 通过 Document 对象。 拿到 XML 的根元素对象
15        Element root = document.getRootElement();
16     // 打印测试
17     // Element.asXML() 它将当前元素转换成为 String 对象
18     // System.out.println( root.asXML() );
19     // 第三步, 通过根元素对象。 获取所有的 book 标签对象
20     // Element.elements(标签名)它可以拿到当前元素下的指定的子元素的集合
21        List<Element> books = root.elements("book");
22     // 第四步, 遍历每个 book 标签对象。 然后获取到 book 标签对象内的每一个元素,
23        for (Element book : books) {
24       // 测试
25       // System.out.println(book.asXML());
26       // 拿到 book 下面的 name 元素对象
27          Element nameElement = book.element("name");
28       // 拿到 book 下面的 price 元素对象
29          Element priceElement = book.element("price");
30       // 拿到 book 下面的 author 元素对象
31          Element authorElement = book.element("author");
32       // 再通过 getText() 方法拿到起始标签和结束标签之间的文本内容
33          System.out.println("书名" + nameElement.getText() + " , 价格:"
34           + priceElement.getText() + ", 作者: " + authorElement.getText());
35           }
36         }

 

 

四、

五、

标签:XML,解析器,Dom4j,对象,标签,元素,xml,book,Document
来源: https://www.cnblogs.com/niujifei/p/15093848.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有