1.DOM和SAX
解析xml文件有两种方式dom和sax方式.
DOM和SAX都只是接口,是解析xml的两种标准.
(1)使用DOM要求解析器把整个XML文档装载到一个Document对象中。Document对象包含文档元素,即根元素,根元素包含N多个子元素…
一个XML文档解析后对应一个Document对象,这说明使用DOM解析XML文档方便使用,因为元素与元素之间还保存着结构关系。
优点:使用DOM,XML文档的结构在内存中依然清晰。元素与元素之间的关系保留了下来!
缺点:如果XML文档过大,那么把整个XML文档装载进内存,可能会出现内存溢出的现象
(2) DOM会一行一行的读取XML文档,最终会把XML文档所有数据存放到Document对象中。SAX也是一行一行的读取XML文档,但是当XML文档读取结束后,SAX不会保存任何数据,同时整个解析XML文档的工作也就结束了。
但是,SAX在读取一行XML文档数据后,就会给感兴趣的用户一个通知!例如当SAX读取到一个元素的开始时,会通知用户当前解析到一个元素的开始标签。而用户可以在整个解析的过程中完成自己的业务逻辑,当SAX解析结束,不会保存任何XML文档的数据。
优点:使用SAX,不会占用大量内存来保存XML文档数据,效率也高。
缺点:当解析到一个元素时,上一个元素的信息已经丢弃,也就是说没有保存元素与元素之间的结构关系,这也大大限制了SAX的使用范围。如果只是想查询XML文档中的数据,那么使用SAX是最佳选择!
-------------
DOM4J和JDOM
它们两个也是接口,也是解析xml的标准,只不过它们都支持以DOM和SAX两种试解析xml文件.
dom4j本身是一个规范,使用它来解析xml也需要底层的解析器支持,
DOM和SAX是解析xml的两种方式,它们只是接口.而JDOM和DOM4J是真正的解析器,是实现类,一个解析器应该提供了两种解析xml文件的方式,也就是说JDOM和DOM4J都实现了DOM和SAX接口.使用JDOM和DOM4J都可以以DOM或SAX的方式来解析xml文档.
这里需要注意的是DOM4J本身也是接口,它是一组规范然而: 对于DOM而言,DOM本身没有提供已经实现的解析器, 而对于DOM4J而言,DOM4J自己提供了一个解析器,如果DOM4J没有找到其他的解析器,那么它将使用自己的解析器.使用者需要注意,DOM4J解析的结果是org.dom4j.Document,而不是org.w3c.Document。DOM4J与DOM一样,只是一组规范(接口与抽象类组成),底层必须要有DOM4J解析器的实现来支持。
--------------
JAXP
JAXP与解析器的关系就是像JAP与hibernat,toplink的关系
所以一个xml解析器不仅仅要实现DOM和SAX接口还需要实现JAXP接口.
1. 当一个解析器实现了DOM和SAX接口那么我们就可以使用这个解析器通过两种方式dom和sax方式来解析xml文档.
2. 当多个xml解析器都实现了JAXP接口那我们就可以直接实现JAXP接口中定义的方法来解析xml而不需要关心特定解析器提供的方法,而事实上各个xml解析器提供的解析类和解析方法是不同的:例如DOM4J和JDOM提供的类和方法一定是不同的,并且使用方式也不相同, 我们使用JAXP的好处就是不需要知道解析器的底层实现.就像我们使用JAP就可以任意切换底层的ORM框架的实现产品.
- 浏览: 49532 次
- 性别:
- 来自: 北京
相关推荐
DOM4J和JDOM是两种常用的Java XML处理库,它们都是为了方便开发者解析、操作和创建XML文档。本文将深入探讨这两个库的核心概念、特点以及它们在处理XML时的异同。 首先,DOM4J是一个非常灵活且功能强大的Java XML ...
Java在处理XML文档时,经常会使用到解析库,其中Dom4j和JDom是两个非常重要的选择。这两个库都是基于Java的DOM(Document Object Model)实现,提供了方便的方式来读取、写入、修改XML文件。下面我们将详细探讨这两...
在"dom4j-1.6.1.jar"和"jdom.jar"这两个文件中,包含了DOM4J和JDOM的类库,开发者可以将它们导入项目中,直接使用这两个库的功能来解析和操作XML文件。 总的来说,DOM4J和JDOM都是Java开发者处理XML的有力工具。...
以上四种方式各有优缺点,DOM适合小文件并要求快速访问任何部分,SAX适合大文件但需要实时处理,DOM4J和JDOM提供了更友好的API但可能消耗更多资源。在实际开发中,应根据项目需求选择合适的方法。在提供的"testxml...
本文将深入探讨如何使用dom4j和jdom两种流行的Java库来解析XML文档,并通过具体的代码示例来展示它们的应用。 ### DOM4J DOM4J(Document Object Model for Java)是一个开放源代码的Java API,用于处理XML文档。...
DOM4J和JDOM是两种流行的Java XML处理库,它们都是用于解析、操作和生成XML文档的工具。在Java世界中,XML作为一种数据交换格式,广泛应用于配置文件、数据传输和文档存储等领域。理解DOM4J和JDOM的特性和用途对于...
DOM4J和JDOM是Java中处理XML的主要库,提供了XML的解析、创建和修改功能。 JDOM是Java中一个专注于XML处理的库,它提供了一种简单和直接的方式来构建和操作XML文档。在提供的`parse()`方法中,可以看到如何使用JDOM...
DOM4J和JDOM是两种广泛使用的Java XML处理库,它们为开发者提供了处理XML文档的强大工具。在这篇文章中,我们将深入探讨这两个库的功能、特点以及它们在实际开发中的应用。 DOM4J是一个灵活且功能丰富的Java XML ...
在本案例中,"dom4j.jar"和"jdom.jar"就是包含了dom4j和jdom库的JAR文件,它们可以被添加到项目的类路径中,以便在代码中使用这些库的功能。 总结来说,XML解析在Java开发中扮演着重要角色,dom4j和jdom是两个常用...
在Java开发中,DOM4J和JDOM是两种流行的XML处理库,而`mysql-connector`则是连接MySQL数据库的关键组件。下面将详细讲解这三个库及其在实际开发中的应用。 首先,DOM4J是一个非常强大的Java XML API,它提供了丰富...
为了处理XML文档,有多种解析器可供选择,其中包括DOM、SAX、DOM4J、JDOM和StAX。这些解析器各有特点,适用于不同的场景。下面将详细介绍这些解析器的工作原理以及它们在生成XML并返回XML字符串形式时的应用。 1. ...
本篇将详细介绍使用DOM4j.Jar和JDOM.jar这两个Java库来解析XML文件的方法。 **DOM4j** DOM4j是一个灵活且功能强大的Java XML API,它提供了全面的XML处理解决方案,包括读取、写入、操作和转换XML文档。DOM4j的...
常见的 XML 解析器有 DOM、SAX、JDOM 和 DOM4J 等。每种解析器都有其特点和优缺,选择合适的解析器对应用程序的性能和开发效率有很大影响。 1. DOM 解析器 DOM(Document Object Model)是 W3C 官方标准,用于表示...
为了处理XML文档,Java提供了多种库,其中dom4j和JDOM是两个常用的选择。这两个库都是Java API,允许开发者对XML进行读取、解析、创建和修改操作。 **dom4j-1.6.1** dom4j是一款功能强大且灵活的Java XML库,它提供...
本教程将详细介绍四种主要的XML解析方式:DOM、DOM4j、JDOM和SAX,以及如何在Java中处理XML文件的相对路径。 1. DOM(Document Object Model) DOM是W3C推荐的一种解析XML的标准,它将XML文档转化为一个树形结构,...
DOM4J和JDOM是两种流行的Java XML处理库,它们为开发者提供了API来解析、创建、操作和遍历XML文档。这两个库都是基于Java的,旨在简化XML文档对象模型(DOM)的使用,同时提供更高效和灵活的处理方式。 **DOM4J** ...
java中四种操作(dom、sax、jdom、dom4j)xml方式详解与
java四种xml解析实例和jar包,包括dom,sax,dom4j,jdom等方式 java四种xml解析实例和jar包,包括dom,sax,dom4j,jdom等方式 是学习Java的xml解析的好例子,包括相应的dom4j.jar,jdom.jar等,自己整理的,物超所值啊,...
在Java编程中,处理XML文件时通常会用到解析库,本话题将详细探讨DOM4J和JDOM这两款常用的XML解析库,以及它们所需的依赖包。 1. DOM4J解析库: DOM4J是Java中的一款非常灵活且功能强大的XML处理库,其名称来源于...
dom4j,jsoup,jdom,w3cdom,xstream使用代码工程 package ivyy.taobao.com.dom4j; import ivyy.taobao.com.entity.Address; import ivyy.taobao.com.entity.Location; import ivyy.taobao.com.entity.Point; import ...