`

几种常用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>  
以上为test.xml文件内容
1、dom方式解析,无需jar
    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("-----------------------------------");  
            }       
        } 
     } 
2、jdom解析,jdom.jar
    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("-----------------------------------");  
        }    
      }  
    }  
3、dom4j,dom4j。jar
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文件解析方法
转自:http://lhkzyz.iteye.com/blog/1681905
此外还有sax等解析方法,而且sax速度很快,很好用,文件小点儿的话用dom或者jdom,不过原理基本相同,就是效率的问题
以后还会更新...
分享到:
评论

相关推荐

    易语言 xml解析 易语言 xml解析 教程 带源码

    易语言XML解析主要涉及到以下几个关键知识点: 1. **XML基础**:首先,我们需要了解XML的基本结构和语法规则,如元素(Element)、属性(Attribute)、文本内容(Text Content)、注释(Comment)以及命名空间...

    XML解析框架比较

    本文将深入探讨几种常见的XML解析框架,并对比它们的特点与适用场景。 一、DOM解析器 DOM(Document Object Model)是W3C制定的一种标准,它将XML文档视为一个树形结构,允许开发者通过节点操作来读取和修改XML内容...

    ios几种xml解析

    在iOS开发中,XML(eXtensible Markup Language)是一种常用的数据交换格式,它用于存储和传输结构化数据。XML的解析是iOS应用处理XML数据的关键步骤,这涉及到将XML文档转换为应用程序可以理解的数据结构。本文将...

    六,Android Xml解析

    在Android开发中,XML(eXtensible Markup Language)是一种常用的数据交换格式,它用于存储和传输结构化数据。XML解析是将XML文档转换为Java对象的过程,这对于Android应用程序的资源配置、布局定义以及数据交换至...

    C语言XML解析库封装

    在C语言中,实现XML解析通常涉及以下几个步骤: 1. **解析XML文档**:这一步需要读取XML文件并将其转化为内存中的数据结构。可以使用递归下降解析器(Recursive Descent Parser)或基于事件的解析器(Event-based ...

    ios中xml解析demo

    iOS中的XML解析主要有以下几种方法: 1. **NSXMLParser**: NSXMLParser是Apple提供的一个基于事件驱动的XML解析器。它逐行读取XML文档,遇到每个元素、属性或其他XML结构时都会触发相应的代理方法。开发者需要...

    四中最常用的XML文件解析总结.doc

    对于XML文件的解析,掌握几种常用的方法是至关重要的。根据给定文件的信息,我们将深入探讨四种最常用的XML文件解析技术:DOM(Document Object Model)、SAX(Simple API for XML)、STAX(Streaming API for XML)...

    天气预报 .xml文件解析

    在IT行业中,XML(eXtensible Markup Language)文件是一种常用的数据存储和交换格式,尤其在数据传输和配置文件中非常常见。本项目名为“天气预报 .xml文件解析”,其核心在于利用XML文件来存储天气预报数据,并...

    C写的解析xml文件源代码

    分析这个源码可以帮助理解XML解析的底层工作原理,并提供一个基础的C语言XML处理框架,这对于开发涉及XML的系统或工具非常有价值。 总结来说,C语言实现XML文件解析需要对XML语法有深入理解,同时熟练掌握字符串...

    简单的XML解析的例子

    DOM(Document Object Model)是XML解析的一种常见方法,它将XML文档视为一个树形结构,允许开发者通过节点操作来遍历和修改XML内容。以下是一个使用Python的`xml.dom.minidom`库进行DOM解析的例子: ```python ...

    XML.rar_XML解析_c# xml_xml_xml C解析_解析xml

    以下是几种常见的方法: 1. **DOM解析**:Document Object Model(DOM)是XML和HTML的标准表示模型。在C#中,我们可以使用`System.Xml`命名空间中的`XmlDocument`类来加载整个XML文档到内存中,然后通过遍历DOM树来...

    sax解析xml本地读取xml

    SAX(Simple API for XML)是XML解析器的一种,它采用事件驱动的方式对XML文档进行解析,而不是一次性加载整个文档到内存中,因此在处理大型XML文件时,SAX解析器具有较高的性能和较低的内存消耗。 标题“sax解析...

    Android 三种(XML解析)

    在Android开发中,XML(eXtensible Markup Language)是一种常用的数据存储和交换格式,用于配置文件、数据传输以及布局描述等。XML解析是将XML文档转换为程序可理解的数据结构的过程,Android提供了三种主要的XML...

    androidXML解析实例代码

    在Android开发中,XML(eXtensible Markup Language)是一种常用的数据存储和交换格式,尤其在应用程序的配置、布局和数据传输中发挥着关键作用。本实例代码将深入探讨如何利用SAX(Simple API for XML)解析器处理...

    VC6 XML解析器

    在VC++ 6.0中,开发XML解析器通常涉及以下几个关键步骤: 1. **包含必要的库**:使用Visual C++ 6.0,可能需要链接XML解析库,例如MSXML或TinyXML,它们提供了API来解析XML文档。MSXML是Microsoft提供的COM组件,而...

    android xml解析1

    在JAVA中有两种常见的XML解析方式,DOM和SAX,DOM在解析的时候会将所有的数据一次性载入内存中进行解析,在数据量比较大的情况下,效率非常低.尤其在手机这种对内存和性能要求比较苛刻的设备里面这种方法并不可取. ...

    iOSXML数据解析

    在iOS中,XML解析通常有以下几种方式:NSXMLParser、GDataXML、XMLReader以及libxml2库。其中,XMLReader因其性能和内存管理的优势,成为处理大量XML数据的理想选择。 首先,我们需要了解XML的基本结构。XML文档由...

    xml 几种解析法总结

    本文将深入探讨XML的四种常见解析方法:DOM、JDOM、SAX和XPath。 1. DOM(Document Object Model)解析: DOM是W3C推荐的标准解析模型,它将XML文档视为一个树形结构,每个节点代表XML文档的一部分。DOM解析器会...

    非常好用的Delphi的XML解析类

    标题中的“非常好用的Delphi的XML解析类”指的是在Delphi编程环境中,存在一个高效且易用的XML解析库。Delphi是Object Pascal的一种现代实现,它提供了一个强大的集成开发环境(IDE)和丰富的库支持,包括XML处理。...

Global site tag (gtag.js) - Google Analytics