- 浏览: 347682 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
hai2653068:
刚刚就用到了。。。 一字符串类型时间的排序 时间有重复 ...
java List 去重(两种方式) -
java门徒CZP:
数据量大时的速度??
java集合类多条件排序 -
showtimes52007:
也就相当于分组,然后排序嘛.
java集合类多条件排序 -
longjun:
好
java解析xml文件(三种方式-(dom ,jdom ,dom4j) -
zx44y:
没多大概率用得到。
java List 去重(两种方式)
test.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包
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("-----------------------------------"); } } }
输出结果为:
磁盘信息: 分区盘符:C 分区容量:8G 目录数:200 文件数:1580 ----------------------------------- 磁盘信息: 分区盘符:D 分区容量:10G 目录数:500 文件数:3000 -----------------------------------
第二种,利用Jdom方式解析xml文件,需要下载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("-----------------------------------"); } } }
输出结果为: 磁盘信息:
分区盘符:C
分区容量:8G
目录数:200
文件数:1580
-----------------------------------
磁盘信息:
分区盘符:D
分区容量:10G
目录数:500
文件数:3000
-----------------------------------
第三种,利用dom4j方式解析xml文件,需要下载 dom4j-1.6.1.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("-----------------------------------"); } } }
输出结果为: 磁盘信息:
分区盘符:C
分区容量:8G
目录数:200
文件数:1580
-----------------------------------
磁盘信息:
分区盘符:D
分区容量:10G
目录数:500
文件数:3000
-----------------------------------
小文档情况下还值得考虑使用DOM和JDOM
- jdom.jar (149.2 KB)
- 下载次数: 101
- dom4j-1.6.1.jar (306.5 KB)
- 下载次数: 146
评论
6 楼
longjun
2012-09-24
好
5 楼
caijingbin0207
2012-09-21
虽然仅是java解析xml的部分方法,但是很是受用呀,还有别忘了sax解析的速度很快!
4 楼
xiaoxiao_0311
2012-09-20
你这只是三种方法而已,不要说是三种方式好不?
3 楼
wiki_more
2012-09-20
你这个标题得改改 不是方式 是API, 至于方式 我记得有dom sax stax
2 楼
pengyan5945
2012-09-20
还有sax
1 楼
ufopw
2012-09-20
jsoup
发表评论
-
java集合类多条件排序
2012-11-05 21:17 8391package sort; import java.ut ... -
java模拟并发请求
2012-10-30 12:10 9872package httpClientTest; im ... -
Java中的值传递和引用传递
2012-10-23 01:01 1148Java中的值传递和引用传递 在java中实质只存在一种 ... -
java List 去重(两种方式)
2012-09-20 23:09 149526方法一: 通过Iterator 的remove方法 p ... -
GET方式传递中文参数乱码
2012-09-11 23:43 1185document.location="http:// ... -
link方式安装eclipse插件
2012-09-11 23:29 11171,准备工作 如果插件是一个单独的jar文件,那么你需 ... -
java二分法查找
2012-09-11 23:27 3009二 分查找是一种高效率线性表的查找算法。在查找时必须将线性表中 ... -
java遍历map
2012-09-04 00:02 1224import java.util.HashMap; impo ... -
jsp请求转发和请求重定向
2012-09-03 23:51 70511,如果当前的Servlet组件要把请求转发 ... -
java List中重复的字符串排序
2012-09-02 21:20 3948首先,先将字符串重复次数放入map中,然后再对map根据值进行 ... -
java读写txt文件
2012-09-01 00:39 13341,写文件 将文件的内容写到txt中 此处用启动一个线程 ... -
jdbc连接mysql数据库
2012-09-01 00:22 1421jdbc连接数据库都是几个步骤: 1)加载驱动 2)建立连接 ... -
java对mysql 中bigint的处理
2012-09-01 00:06 11653mysql 中的bigint 是能存放8个字节长度,因此如果想 ... -
java读取xml文件
2012-08-30 22:33 1333可以用两种方法实现: 1.利用jdk的dom进行读取 2.利 ... -
java 对map中的 value 排序
2012-08-29 00:38 9344package Map; import java.uti ... -
java对目录和文件的操作
2012-08-29 00:19 16761)遍历文件夹里面所有文件: 用递归,每次递归前先判断是否为文 ... -
java 获取请求 URL
2012-08-28 23:58 19396//java 获取请求 URL ...
相关推荐
在处理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文档转化为一个树形结构,...