zoukankan      html  css  js  c++  java
  • java的XML解析(DOM4J技术)

    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 

  • 相关阅读:
    Flask从负到零的一周
    DOM(一):节点层次-Node类型
    错误处理(三):区分致命错误和非致命错误
    错误处理(二):常见错误类型
    错误处理(一)
    跨域(二)
    跨域(一)
    AJAX(四):XHR2支持的方法
    AJAX(三):GET与POST
    AJAX(二):HTTP头部信息
  • 原文地址:https://www.cnblogs.com/topshark/p/10251404.html
Copyright © 2011-2022 走看看