欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java的XML解析(DOM4J技术)

程序员文章站 2022-04-05 09:37:24
DOM4J技术解析XML文件 一,XML简介 xml (可扩展标记语言) 全称: Extended Markup Language 可扩展的含义:允许程序员按照自己的想法去扩展新的标签 注意:但是扩展的时候,必须要遵循XML规范 二,xml的特点: 自带描述性, 可以支持跨平台, 保留了面向对象编程 ......

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