java的XML解析(DOM4J技术)

2019-01-11 08:35:49来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

DOM4J技术解析XML文件

  一,XML简介

    xml (可扩展标记语言)  全称: Extended Markup Language
    可扩展的含义:允许程序员按照自己的想法去扩展新的标签
    注意:但是扩展的时候,必须要遵循XML规范

  二,xml的特点:
    自带描述性,
    可以支持跨平台,
    保留了面向对象编程的层次感

 

  三,XML文件规范例子

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <persons>
 3 <person id="101">
 4    <name>李白</name>
 5    <addrss>唐朝-长安</addrss>
 6 </person>
 7 <person id="102">
 8    <name>杜甫</name>
 9    <addrss>唐朝-长安</addrss></person>
10 <person id="103">
11    <name>苏轼</name>
12    <addrss>宋朝-汴梁</addrss> 
13 </person>
14 </persons>

  

  四,DOM4J技术详解

    DOM4J:Dom4j是一个易用的、开源的库,用于XML、XPath和XSLT。它应用于Java平台,采用了Java集合框架并完全支持DOM、SAX和JAXP。在Java开发社区里,DOM4J的使用最为广泛。JDOM的操作非常简单,但是在处理大XML文件时性能表现不佳,解析10M文档时就会内存溢出。而DOM4J是一个非常优秀的Java XML API,具有性能优异、功能强大和易于使用的特点,同时它也是一个开放源代码的软件,DOM4J使用大量的接口,这也是它被认为比JDOM灵活的原因。如今我们可以看到越来越多的Java软件都在使用DOM4J来读写XML。DOM4J的官方地址是“http://www.dom4j.org/”。
    注意:DOM4J不是sun公司自己的产品,所以没有提供服务的jar包,我们可以自己下载包,里面有API(index-html),jar包等。

 

  五,DOM4J技术解析上述XML文件详细代码

 1 import java.util.Iterator;
 2 import java.util.List;
 3 import org.dom4j.Attribute;
 4 import org.dom4j.Document;
 5 import org.dom4j.Element;
 6 import org.dom4j.io.SAXReader;
 7 
 8 public class dome4j {
 9     public static void main(String[] args) throws Exception {
10         //1.创建是事件解析器
11         SAXReader sr = new SAXReader();
12         //2.读取XML文件并创建文本容器
13         Document doc = sr.read("Dom4j.xml");
14         //3.获取XML根节点
15         Element el= doc.getRootElement();
16         //4.遍历根节点
17         Iterator<Element> it = el.elementIterator();
18         while(it.hasNext()){
19             Element el2 = it.next();
20             //5.获取根节点的属性值
21             List<Attribute> list = el2.attributes();
22             for (Attribute a : list) {
23                 String name = a.getName();
24                 String text = a.getText();
25                 System.out.println("=====================");
26                 System.out.println(name+"="+text);
27                 //6.通过遍历获取id对应的属性值
28                 Iterator<Element> it2 = el2.elementIterator();
29                 while(it2.hasNext()){
30                     Element next = it2.next();
31                     String name2 = next.getName();
32                     String text2 = next.getText();
33                     System.out.println(name2+"="+text2);
34                 }
35             }
36         }
37     }
38 }

 

精品java学习视频 

java的多线程技术:链接:https://pan.baidu.com/s/1vSoERRP2a4sXD4Tu1NUMeg  提取码:qxfe 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:EditPlus提示错误:找不到或无法加载主类

下一篇:【Spring Boot】集成Netty Socket.IO通讯框架