`

java解析xml文件

阅读更多

.xml文件

Xml代码 复制代码 收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>      
  2. <HD>      
  3.   <disk name="C">      
  4.     <capacity>8G</capacity>      
  5.     <directories>200</directories>      
  6.     <files>1580</files>      
  7.   </disk>      
  8.      
  9.   <disk name="D">      
  10.     <capacity>10G</capacity>      
  11.     <directories>500</directories>      
  12.     <files>3000</files>      
  13.   </disk>      
  14. </HD>   
<?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代码 复制代码 收藏代码
  1. package Dom;   
  2. import javax.xml.parsers.DocumentBuilder;   
  3. import javax.xml.parsers.DocumentBuilderFactory;   
  4. import org.w3c.dom.Document;   
  5. import org.w3c.dom.Element;   
  6. import org.w3c.dom.NodeList;   
  7.   
  8. public class DomXML {   
  9.        
  10.     public static void main(String[] args)throws Exception {   
  11.         //得到DOM解析器的工厂实例   
  12.         DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();   
  13.         //从DOM工厂中获得DOM解析器   
  14.         DocumentBuilder dbBuilder = dbFactory.newDocumentBuilder();   
  15.         //声明为File为了识别中文名   
  16.         Document doc = null;   
  17.         doc = dbBuilder.parse("F:/work_sapce_petroskill/Spring/src/Dom/test.xml");   
  18.            
  19.         //得到文档名称为Student的元素的节点列表   
  20.         NodeList list = doc.getElementsByTagName("disk");   
  21.            
  22.         //遍历该集合,显示结合中的元素及其子元素的名字   
  23.         for(int i = 0; i< list.getLength() ; i ++){   
  24.             Element element = (Element)list.item(i);   
  25.             String name=element.getAttribute("name");   
  26.             String capacity=element.getElementsByTagName("capacity").item(0).getFirstChild().getNodeValue();   
  27.             String directories=element.getElementsByTagName("directories").item(0).getFirstChild().getNodeValue();   
  28.             String files=element.getElementsByTagName("files").item(0).getFirstChild().getNodeValue();   
  29.             System.out.println("磁盘信息:");    
  30.             System.out.println("分区盘符:"+name);    
  31.             System.out.println("分区容量:"+capacity);    
  32.             System.out.println("目录数:"+directories);    
  33.             System.out.println("文件数:"+files);    
  34.             System.out.println("-----------------------------------");    
  35.         }         
  36.     }   
  37.  }  
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代码 复制代码 收藏代码
  1. 磁盘信息:   
  2. 分区盘符:C   
  3. 分区容量:8G   
  4. 目录数:200   
  5. 文件数:1580   
  6. -----------------------------------   
  7. 磁盘信息:   
  8. 分区盘符:D   
  9. 分区容量:10G   
  10. 目录数:500   
  11. 文件数:3000   
  12. -----------------------------------  
磁盘信息:
分区盘符:C
分区容量:8G
目录数:200
文件数:1580
-----------------------------------
磁盘信息:
分区盘符:D
分区容量:10G
目录数:500
文件数:3000
-----------------------------------

  

第二种,利用Jdom方式解析xml文件,需要下载jdom.jar(见附件)

 

Java代码 复制代码 收藏代码
  1. package Dom;   
  2. import java.util.List;   
  3.   
  4. import org.jdom.Document;   
  5. import org.jdom.Element;   
  6. import org.jdom.input.SAXBuilder;   
  7. public class JDomXML {    
  8.   public static void main(String[] args) throws Exception{     
  9.     SAXBuilder sb=new SAXBuilder();    
  10.     Document doc=sb.build(Dom4jXML.class.getClassLoader().getResourceAsStream("Dom/test.xml")); //构造文档对象   
  11.     Element root=doc.getRootElement(); //获取根元素   
  12.     List list=root.getChildren("disk");//取名字为disk的所有元素    
  13.     for(int i=0;i<list.size();i++){    
  14.        Element element=(Element)list.get(i);    
  15.        String name=element.getAttributeValue("name");    
  16.        String capacity=element.getChildText("capacity");//取disk子元素capacity的内容    
  17.        String directories=element.getChildText("directories");    
  18.        String files=element.getChildText("files");    
  19.        System.out.println("磁盘信息:");    
  20.        System.out.println("分区盘符:"+name);    
  21.        System.out.println("分区容量:"+capacity);    
  22.        System.out.println("目录数:"+directories);    
  23.        System.out.println("文件数:"+files);    
  24.        System.out.println("-----------------------------------");    
  25.     }      
  26.   }    
  27. }   
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("-----------------------------------"); 
    }   
  } 
} 

 

 

 

第三种,利用dom4j方式解析xml文件,需要下载 dom4j-1.6.1.jar(见附件)

Java代码 复制代码 收藏代码
  1. package Dom;   
  2. import java.util.Iterator;   
  3. import org.dom4j.Document;   
  4. import org.dom4j.Element;   
  5. import org.dom4j.io.SAXReader;   
  6.   
  7. public class Dom4jXML{      
  8.    public static void main(String[] args) throws Exception {   
  9.        
  10.         //创建文件对象      
  11.         java.io.File file=new java.io.File("F:/workSapce/javaXML/src/Dom/test.xml");      
  12.         //创建一个读取XML文件的对象      
  13.         SAXReader reader=new SAXReader();      
  14.         //创建一个文档对象      
  15.         Document document=reader.read(file);      
  16.         //获取文件的根节点      
  17.         Element element=document.getRootElement();   
  18.         for(Iterator i=element.elementIterator("disk");i.hasNext();){   
  19.             //获取节点元素      
  20.             element=(Element)i.next();   
  21.             String name=element.attributeValue("name");   
  22.             String capacity=element.elementText("capacity");//取disk子元素capacity的内容    
  23.             String directories=element.elementText("directories");    
  24.             String files=element.elementText("files");    
  25.             System.out.println("磁盘信息:");    
  26.             System.out.println("分区盘符:"+name);    
  27.             System.out.println("分区容量:"+capacity);    
  28.             System.out.println("目录数:"+directories);    
  29.             System.out.println("文件数:"+files);    
  30.             System.out.println("-----------------------------------");    
  31.         }      
  32.     }      
  33. }     
  34.          
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代码 复制代码 收藏代码
  1. 磁盘信息:   
  2. 分区盘符:C   
  3. 分区容量:8G   
  4. 目录数:200   
  5. 文件数:1580   
  6. -----------------------------------   
  7. 磁盘信息:   
  8. 分区盘符:D   
  9. 分区容量:10G   
  10. 目录数:500   
  11. 文件数:3000   
  12. -----------------------------------  
磁盘信息:
分区盘符:C
分区容量:8G
目录数:200
文件数:1580
-----------------------------------
磁盘信息:
分区盘符:D
分区容量:10G
目录数:500
文件数:3000
-----------------------------------

 

 

总结:DOM4J性能最好

输出结果为:

Xml代码 复制代码 收藏代码
  1. 磁盘信息:   
  2. 分区盘符:C   
  3. 分区容量:8G   
  4. 目录数:200   
  5. 文件数:1580   
  6. -----------------------------------   
  7. 磁盘信息:   
  8. 分区盘符:D   
  9. 分区容量:10G   
  10. 目录数:500   
  11. 文件数:3000   
  12. -----------------------------------  
磁盘信息:
分区盘符:C
分区容量:8G
目录数:200
文件数:1580
-----------------------------------
磁盘信息:
分区盘符:D
分区容量:10G
目录数:500
文件数:3000
-----------------------------------

 

分享到:
评论

相关推荐

    java解析XML文件

    Java解析XML文件是Java开发中常见的一项任务,XML(eXtensible Markup Language)作为一种结构化数据存储格式,被广泛用于数据交换、配置文件和Web服务等场景。本篇文章将详细探讨Java如何利用DOM4J库来解析XML文件...

    JAVA 解析XML生成XML文档实例

    JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML

    使用java解析XML文件,解析完之后将解析结果导入mysql数据库中

    本教程将介绍如何使用Java解析XML文件,并将解析结果导入MySQL数据库。 首先,我们需要引入处理XML的Java库——JAXB(Java Architecture for XML Binding)和DOM(Document Object Model)API。JAXB用于对象与XML...

    Java 解析xml文档

    Java解析XML文档是Java开发中常见的任务,XML(Extensible Markup Language)作为一种可扩展标记语言,广泛用于数据交换、配置存储等场景。本项目涵盖了三种主流的Java XML解析方法:SAX、DOM以及DOM4J,并提供了...

    Java解析Xml文件

    Java解析XML文件是一种常见的任务,尤其在处理结构化数据或者与服务器进行数据交换时。XML(eXtensible Markup Language)是一种标记语言,用于存储和传输数据,具有良好的可读性和可扩展性。在Java中,有多种方式来...

    Java解析XML文件的DOM和SAX方式.doc

    Java 解析 XML 文件的 DOM 和 SAX 方式 Java 解析 XML 文件的 DOM 和 SAX 方式是指在 Java 中使用 Document Object Model(DOM)和 Simple API for XML(SAX)两种方式来解析 XML 文件的技术。下面将详细介绍这两种...

    Java解析XML文件

    ### Java解析XML文件:DOM与SAX解析技术详解 #### DOM解析:JAXP与Crimson解析器 DOM(Document Object Model),即文档对象模型,是W3C为XML文档定义的一种标准接口,用于在各种编程语言中操作XML文档。DOM将XML...

    java解析xml文档的常用方法

    "java解析xml文档的常用方法" Java 解析 XML 文档的常用方法有四种:DOM、SAX、JDOM 和 DOM4J。下面对这四种方法进行详细的介绍: 1. 使用 DOM(JAXP Crimson 解析器) DOM(Document Object Model)是一种以层次...

    java解析XML的四种方式

    ### Java解析XML的四种方式详解 #### 一、DOM(Document Object Model) DOM是一种平台和语言中立的接口,它将XML文档表示为一个树结构,使得程序可以创建、读取、更新或删除树中的元素。DOM实现了W3C的标准,能够...

    java 解析xml 多级

    Java作为一种广泛使用的后端编程语言,提供了多种方式来解析XML文档,使得处理多级嵌套的数据变得可能。本文将详细讲解如何在Java中解析XML,特别是针对多级结构的情况。 首先,Java提供了两种主要的API来处理XML:...

    java解析xml文档方式

    ### Java解析XML文档方式 #### 引言 随着互联网的发展,XML(可扩展标记语言)因其平台、语言和系统的无关性,在数据交换和集成中扮演着至关重要的角色。本文将深入探讨Java中解析XML的四种主要方法:DOM、SAX、...

    java解析XML文件DOMO

    Java解析XML文件主要依赖于Java API中的DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)等解析器。在本案例中,我们重点讨论DOM解析器,DOMO通常指的是DOM操作。DOM解析器...

    Java解析XML.zip

    本压缩包“Java解析XML.zip”包含了两个关键的第三方库:jaxen-1.1.1.jar和dom4j-1.6.1.jar,它们是Java解析XML文件的重要工具。 首先,让我们了解一下**DOM4J**。DOM4J是一个强大的Java XML API,它提供了灵活且高...

    java解析xml字符串

    ### Java解析XML字符串 在给定的代码示例中,我们看到了如何使用JDOM库来解析一个XML字符串,并对其进行操作。下面我们将详细解析这个过程: 1. **初始化XML源**:首先,将XML字符串转化为`StringReader`对象,这...

    java实现xml解析word文档代码实现

    Java 实现 XML 解析 Word 文档代码实现 基于给定的文件信息,我们可以总结出以下知识点: 1. Java 实现 XML 解析 Word 文档 Java 可以使用多种方式来解析 Word 文档,包括使用 Apache POI 库、Java2Word 库等。...

    java解析xml文件的例子(三中方式的都有,很全)

    本示例提供了三种不同的方法来解析XML文件,并结合了数据库连接,特别是使用Oracle数据库。下面将详细介绍DOM、SAX和DOM4J这三种解析器的工作原理以及如何在Java中实现它们。 1. DOM(文档对象模型)解析: DOM是一...

    Java解析XML文档[归类].pdf

    Java解析XML文档主要涉及到两种方式:SAX和DOM。本文主要关注基于树和节点的DOM解析方法。DOM解析器将整个XML文档加载到内存中,形成一个树状结构,允许开发者通过API遍历和操作XML文档的每一个部分。 首先,DOM...

Global site tag (gtag.js) - Google Analytics