`
云水禅心
  • 浏览: 26257 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

java解析xml文件(三种方式-(dom ,jdom ,dom4j)

    博客分类:
  • java
阅读更多
test.xml文件
Xml代码 
<?xml version="1.0" encoding="UTF-8"?>    
<HD>    
  <disk name="C">    
    <capacity>8G</capacity>    
    <directories>200</directories>    
    <files>1580</files>    
  </disk>    
   
  <disk name="D">    
    <capacity>10G</capacity>    
    <directories>500</directories>    
    <files>3000</files>    
  </disk>    
</HD>  
  
第一种,利用dom方式解析xml 文件,无需jar包
Java代码 
package Dom; 
import javax.xml.parsers.DocumentBuilder; 
import javax.xml.parsers.DocumentBuilderFactory; 
import org.w3c.dom.Document; 
import org.w3c.dom.Element; 
import org.w3c.dom.NodeList; 
 
public class DomXML { 
     
    public static void main(String[] args)throws Exception { 
        //得到DOM解析器的工厂实例 
        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
        //从DOM工厂中获得DOM解析器 
        DocumentBuilder dbBuilder = dbFactory.newDocumentBuilder(); 
        //声明为File为了识别中文名 
        Document doc = null; 
        doc = dbBuilder.parse("F:/work_sapce_petroskill/Spring/src/Dom/test.xml"); 
         
        //得到文档名称为Student的元素的节点列表 
        NodeList list = doc.getElementsByTagName("disk"); 
         
        //遍历该集合,显示结合中的元素及其子元素的名字 
        for(int i = 0; i< list.getLength() ; i ++){ 
            Element element = (Element)list.item(i); 
            String name=element.getAttribute("name"); 
            String capacity=element.getElementsByTagName("capacity").item(0).getFirstChild().getNodeValue(); 
            String directories=element.getElementsByTagName("directories").item(0).getFirstChild().getNodeValue(); 
            String files=element.getElementsByTagName("files").item(0).getFirstChild().getNodeValue(); 
            System.out.println("磁盘信息:");  
            System.out.println("分区盘符:"+name);  
            System.out.println("分区容量:"+capacity);  
            System.out.println("目录数:"+directories);  
            System.out.println("文件数:"+files);  
            System.out.println("-----------------------------------");  
        }       
    } 


输出结果为:
Xml代码 
磁盘信息: 
分区盘符:C 
分区容量:8G 
目录数:200 
文件数:1580 
----------------------------------- 
磁盘信息: 
分区盘符:D 
分区容量:10G 
目录数:500 
文件数:3000 
----------------------------------- 
 
第二种,利用Jdom方式解析xml文件,需要下载jdom.jar(见附件)

Java代码 
package Dom; 
import java.util.List; 
 
import org.jdom.Document; 
import org.jdom.Element; 
import org.jdom.input.SAXBuilder; 
public class JDomXML {  
  public static void main(String[] args) throws Exception{   
    SAXBuilder sb=new SAXBuilder();  
    Document doc=sb.build(Dom4jXML.class.getClassLoader().getResourceAsStream("Dom/test.xml")); //构造文档对象 
    Element root=doc.getRootElement(); //获取根元素 
    List list=root.getChildren("disk");//取名字为disk的所有元素  
    for(int i=0;i<list.size();i++){  
       Element element=(Element)list.get(i);  
       String name=element.getAttributeValue("name");  
       String capacity=element.getChildText("capacity");//取disk子元素capacity的内容  
       String directories=element.getChildText("directories");  
       String files=element.getChildText("files");  
       System.out.println("磁盘信息:");  
       System.out.println("分区盘符:"+name);  
       System.out.println("分区容量:"+capacity);  
       System.out.println("目录数:"+directories);  
       System.out.println("文件数:"+files);  
       System.out.println("-----------------------------------");  
    }    
  }  
}  


输出结果为:
Xml代码 
磁盘信息: 
分区盘符:C 
分区容量:8G 
目录数:200 
文件数:1580 
----------------------------------- 
磁盘信息: 
分区盘符:D 
分区容量:10G 
目录数:500 
文件数:3000 
----------------------------------- 

第三种,利用dom4j方式解析xml文件,需要下载 dom4j-1.6.1.jar(见附件)
Java代码 
package Dom; 
import java.util.Iterator; 
import org.dom4j.Document; 
import org.dom4j.Element; 
import org.dom4j.io.SAXReader; 
 
public class Dom4jXML{    
   public static void main(String[] args) throws Exception { 
     
        //创建文件对象    
        java.io.File file=new java.io.File("F:/workSapce/javaXML/src/Dom/test.xml");    
        //创建一个读取XML文件的对象    
        SAXReader reader=new SAXReader();    
        //创建一个文档对象    
        Document document=reader.read(file);    
        //获取文件的根节点    
        Element element=document.getRootElement(); 
        for(Iterator i=element.elementIterator("disk");i.hasNext();){ 
            //获取节点元素    
            element=(Element)i.next(); 
            String name=element.attributeValue("name"); 
            String capacity=element.elementText("capacity");//取disk子元素capacity的内容  
            String directories=element.elementText("directories");  
            String files=element.elementText("files");  
            System.out.println("磁盘信息:");  
            System.out.println("分区盘符:"+name);  
            System.out.println("分区容量:"+capacity);  
            System.out.println("目录数:"+directories);  
            System.out.println("文件数:"+files);  
            System.out.println("-----------------------------------");  
        }    
    }    
}   
        

输出结果为:
Xml代码 
磁盘信息: 
分区盘符:C 
分区容量:8G 
目录数:200 
文件数:1580 
----------------------------------- 
磁盘信息: 
分区盘符:D 
分区容量:10G 
目录数:500 
文件数:3000 
----------------------------------- 


总结:DOM4J性能最好
           小文档情况下还值得考虑使用DOM和JDOM
jdom.jar (149.2 KB)
下载次数: 33
dom4j-1.6.1.jar (306.5 KB)
下载次数: 38
分享到:
评论

相关推荐

    XML四种解析方式------DOM SAX JDOM DOM4J

    在处理XML文档时,有多种解析方式,包括DOM、SAX、JDOM和DOM4J。每种解析方式都有其特性和适用场景,下面将详细探讨这四种解析方法。 1. DOM(Document Object Model) DOM解析器将整个XML文档加载到内存中,形成一...

    生成、解析xml的四种方式(dom,dom4j,sax,jdom)

    本文将详细介绍生成和解析XML的四种主要方法:DOM、DOM4J、SAX和JDOM。 1. DOM(Document Object Model) DOM是W3C组织推荐的一种解析XML的标准方式。它将XML文档视为一个树形结构,每个节点代表XML文档的一部分。...

    XML解析-dom4j.jar-jdom.jar

    在Java编程中,解析XML文档通常需要借助于特定的库,如dom4j和jdom。这两个库都是Java平台上处理XML的优秀选择。 dom4j是一个功能强大的开源XML处理库,提供了灵活且高效的API。它不仅支持DOM模型,还支持SAX...

    XML的四种解析器(dom,sax,jdom,dom4j)原理及性能比较,超详细

    常见的 XML 解析器有 DOM、SAX、JDOM 和 DOM4J 等。每种解析器都有其特点和优缺,选择合适的解析器对应用程序的性能和开发效率有很大影响。 1. DOM 解析器 DOM(Document Object Model)是 W3C 官方标准,用于表示...

    dom4j解析xml文件的压缩包

    5. **事件驱动解析(SAX)**:除了传统的DOM解析外,DOM4J还支持SAX解析器,这种解析方式适用于处理大型XML文件,因为它不需要一次性加载整个文档到内存。 6. **Namespace支持**:DOM4J提供了对XML命名空间的全面...

    JAVA 解析XML 的JAr包 DOM4j.Jar JDOM.jar

    本篇将详细介绍使用DOM4j.Jar和JDOM.jar这两个Java库来解析XML文件的方法。 **DOM4j** DOM4j是一个灵活且功能强大的Java XML API,它提供了全面的XML处理解决方案,包括读取、写入、操作和转换XML文档。DOM4j的...

    java操作xml dom dom4j sax jdom

    DOM4J是基于DOM的Java XML库,提供了一种更方便的方式来处理XML,其API设计更加面向对象。DOM4J不仅支持DOM,还引入了XPath表达式来定位XML元素,这使得查询和操作XML变得更加直观。比如,你可以使用`...

    java dom4j解析xml

    - DOM4J支持两种解析方式:DOM解析和SAX解析。DOM解析会一次性加载整个XML文档到内存,适合小规模的XML;SAX解析则采用事件驱动,逐行读取,适合处理大规模的XML文件。 - 解析XML的基本步骤:创建解析器工厂,通过...

    java 解析XML性能对比分析Demo

    我们将讨论DOM、SAX、JDOM、DOM4J和JAXB这五种解析器,以及它们各自的特点和适用场景。 1. DOM(文档对象模型)解析: DOM解析器将整个XML文档加载到内存中,形成一个树形结构,允许开发者通过节点遍历访问XML数据...

    xml(jdom-dom4j).rar_DOM4J_dom4j xml java

    DOM4J是Java中一个非常流行的XML处理库,它提供了灵活且高效的API,使得开发者能够轻松地进行XML的解析、创建、修改等操作。在Java领域,XML常用于数据交换、配置存储以及文档生成等场景,因此理解并掌握DOM4J对于...

    xml数据前后台解析:jdom与dom4j源码,程序可以跑

    本文将深入探讨XML数据在前后台解析的过程中,重点介绍两种主流的Java XML解析库——JDOM和DOM4J,并提供实际运行的程序示例。同时,我们还会讨论如何使用jQuery在前端解析XML并展示数据。 首先,让我们了解XML的...

    Dom JDom 解析xml 文件

    在Java中,解析XML文件是常见的任务,其中DOM(Document Object Model)和JDOM是两种常用的方法。 DOM解析是XML解析的一种方式,它将整个XML文档加载到内存中,形成一个树形结构,称为DOM树。每个节点代表XML文档的...

    dom4j.jar包,java解析xml dom4j.jar包

    解析XML文件时,DOM4J提供了两种主要的方式:DOM阅读器和SAX阅读器。 - **DOM阅读器**:首先,通过`DocumentFactory.createDocument()`方法创建一个`Document`对象,然后使用`read()`方法读取XML文件,将整个XML...

    java xml 4 种 解析xml 方法 sax jdom dom stAX

    为了处理XML文档,Java提供了多种解析方法,包括SAX(Simple API for XML)、JDOM(Java Document Object Model)、DOM(Document Object Model)以及stAX(Streaming API for XML)。下面将详细介绍这四种解析XML的...

    java 操作xml文件(dom4j-1.6.1.jar和jdom.jar)

    3. **元素和属性操作**:DOM4J提供了一种面向对象的方式来创建、修改和删除XML元素和属性。 4. **事件驱动的解析**:对于内存有限的情况,DOM4J可以通过SAX事件处理模型来处理XML文档。 5. **XML Schema支持**:DOM4...

    java解析XML的四种方式

    ### Java解析XML的四种方式详解 ...JDOM和DOM4J则在提供更优秀的性能和易用性方面表现突出,尤其是对于那些希望快速集成XML处理能力的Java应用程序。最终,开发人员应根据项目的需求和资源限制来决定使用哪种解析技术。

    dom4j-1.6.1

    - 解析XML文件:使用`DocumentReader`或`SAXReader`读取XML文件并构建DOM4J树形结构。 - 遍历XML:利用`Node`接口的方法如`childNodes()`,`elements()`遍历XML结构。 - XPath查询:通过`XPathExpression`执行...

    读取XML文件的四种方法

    在Java中,读取XML文件有多种方法,本文将介绍四种常见的方法:DOM、DOM4J、JDOM和SAX。 DOM(Document Object Model) DOM是W3C组织制定的XML文档对象模型,它提供了对XML文档的树形结构表示。使用DOM方法读取XML...

    使用JDOM解析XML文件

    在解析XML文件时,JDOM提供了SAXBuilder和DOMBuilder两种方式。SAXBuilder基于事件驱动,适用于处理大型XML文件,因为它占用较少的内存。DOMBuilder则一次性加载整个XML到内存,适合小型文件,便于进行快速访问。 ...

    XML 文件解析 DOM DOM4j JDOM SAX 和相对路径的写法 ,代码是有注释的

    本教程将详细介绍四种主要的XML解析方式:DOM、DOM4j、JDOM和SAX,以及如何在Java中处理XML文件的相对路径。 1. DOM(Document Object Model) DOM是W3C推荐的一种解析XML的标准,它将XML文档转化为一个树形结构,...

Global site tag (gtag.js) - Google Analytics