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。每种解析方式都有其特性和适用场景,下面将详细探讨这四种解析方法。 1. DOM(Document Object Model) DOM解析器将整个XML文档加载到内存中,形成一...
本文将详细介绍生成和解析XML的四种主要方法:DOM、DOM4J、SAX和JDOM。 1. DOM(Document Object Model) DOM是W3C组织推荐的一种解析XML的标准方式。它将XML文档视为一个树形结构,每个节点代表XML文档的一部分。...
在Java编程中,解析XML文档通常需要借助于特定的库,如dom4j和jdom。这两个库都是Java平台上处理XML的优秀选择。 dom4j是一个功能强大的开源XML处理库,提供了灵活且高效的API。它不仅支持DOM模型,还支持SAX...
常见的 XML 解析器有 DOM、SAX、JDOM 和 DOM4J 等。每种解析器都有其特点和优缺,选择合适的解析器对应用程序的性能和开发效率有很大影响。 1. DOM 解析器 DOM(Document Object Model)是 W3C 官方标准,用于表示...
5. **事件驱动解析(SAX)**:除了传统的DOM解析外,DOM4J还支持SAX解析器,这种解析方式适用于处理大型XML文件,因为它不需要一次性加载整个文档到内存。 6. **Namespace支持**:DOM4J提供了对XML命名空间的全面...
本篇将详细介绍使用DOM4j.Jar和JDOM.jar这两个Java库来解析XML文件的方法。 **DOM4j** DOM4j是一个灵活且功能强大的Java XML API,它提供了全面的XML处理解决方案,包括读取、写入、操作和转换XML文档。DOM4j的...
DOM4J是基于DOM的Java XML库,提供了一种更方便的方式来处理XML,其API设计更加面向对象。DOM4J不仅支持DOM,还引入了XPath表达式来定位XML元素,这使得查询和操作XML变得更加直观。比如,你可以使用`...
- DOM4J支持两种解析方式:DOM解析和SAX解析。DOM解析会一次性加载整个XML文档到内存,适合小规模的XML;SAX解析则采用事件驱动,逐行读取,适合处理大规模的XML文件。 - 解析XML的基本步骤:创建解析器工厂,通过...
DOM4J是Java中一个非常流行的XML处理库,它提供了灵活且高效的API,使得开发者能够轻松地进行XML的解析、创建、修改等操作。在Java领域,XML常用于数据交换、配置存储以及文档生成等场景,因此理解并掌握DOM4J对于...
我们将讨论DOM、SAX、JDOM、DOM4J和JAXB这五种解析器,以及它们各自的特点和适用场景。 1. DOM(文档对象模型)解析: DOM解析器将整个XML文档加载到内存中,形成一个树形结构,允许开发者通过节点遍历访问XML数据...
本文将深入探讨XML数据在前后台解析的过程中,重点介绍两种主流的Java XML解析库——JDOM和DOM4J,并提供实际运行的程序示例。同时,我们还会讨论如何使用jQuery在前端解析XML并展示数据。 首先,让我们了解XML的...
在Java中,解析XML文件是常见的任务,其中DOM(Document Object Model)和JDOM是两种常用的方法。 DOM解析是XML解析的一种方式,它将整个XML文档加载到内存中,形成一个树形结构,称为DOM树。每个节点代表XML文档的...
解析XML文件时,DOM4J提供了两种主要的方式:DOM阅读器和SAX阅读器。 - **DOM阅读器**:首先,通过`DocumentFactory.createDocument()`方法创建一个`Document`对象,然后使用`read()`方法读取XML文件,将整个XML...
为了处理XML文档,Java提供了多种解析方法,包括SAX(Simple API for XML)、JDOM(Java Document Object Model)、DOM(Document Object Model)以及stAX(Streaming API for XML)。下面将详细介绍这四种解析XML的...
3. **元素和属性操作**:DOM4J提供了一种面向对象的方式来创建、修改和删除XML元素和属性。 4. **事件驱动的解析**:对于内存有限的情况,DOM4J可以通过SAX事件处理模型来处理XML文档。 5. **XML Schema支持**:DOM4...
### Java解析XML的四种方式详解 ...JDOM和DOM4J则在提供更优秀的性能和易用性方面表现突出,尤其是对于那些希望快速集成XML处理能力的Java应用程序。最终,开发人员应根据项目的需求和资源限制来决定使用哪种解析技术。
- 解析XML文件:使用`DocumentReader`或`SAXReader`读取XML文件并构建DOM4J树形结构。 - 遍历XML:利用`Node`接口的方法如`childNodes()`,`elements()`遍历XML结构。 - XPath查询:通过`XPathExpression`执行...
在Java中,读取XML文件有多种方法,本文将介绍四种常见的方法:DOM、DOM4J、JDOM和SAX。 DOM(Document Object Model) DOM是W3C组织制定的XML文档对象模型,它提供了对XML文档的树形结构表示。使用DOM方法读取XML...
在解析XML文件时,JDOM提供了SAXBuilder和DOMBuilder两种方式。SAXBuilder基于事件驱动,适用于处理大型XML文件,因为它占用较少的内存。DOMBuilder则一次性加载整个XML到内存,适合小型文件,便于进行快速访问。 ...
本教程将详细介绍四种主要的XML解析方式:DOM、DOM4j、JDOM和SAX,以及如何在Java中处理XML文件的相对路径。 1. DOM(Document Object Model) DOM是W3C推荐的一种解析XML的标准,它将XML文档转化为一个树形结构,...