`

DOM与SAX与JAXP

    博客分类:
  • XML
阅读更多

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框架的实现产品.

分享到:
评论

相关推荐

    DOM和SAX概念的总结

    通常我们使用根据以下这些模型创建的API 来分析和操纵XML结构,这些模型可以是基于对象(基于树)的,如文档对象模型...而Java API for XML Parsing(JAXP)和MSXML提供了使用 DOM、SAX等处理XML文档的通用接口。

    Dom4j 使用指南

    Dom4j is an easy to use, open source library for working with XML, XPath and XSLT on the Java platform using the Java Collections Framework and with full support for DOM, SAX and JAXP. Dom4j是一个易用...

    Dom4j_使用简介

    Dom4j is an easy to use, open source library for working with XML, XPath and XSLT on the Java platform using the Java Collections Framework and with full support for DOM, SAX and JAXP. Dom4j是一个易用...

    DOM4J使用简介(很实用)

    Dom4j is an easy to use, open source library for working with XML, XPath and XSLT on the Java platform using the Java Collections Framework and with full support for DOM, SAX and JAXP. Dom4j是一个易用...

    Dom4j是一个易用的、开源的库

    Dom4j is an easy to use, open source library for working with XML, XPath and XSLT on the Java platform using the Java Collections Framework and with full support for DOM, SAX and JAXP。 Dom4j是一个...

    XML_dom_sax_dom4j:XML解析技术之dom、Sax、dom4j以及XML Schema技术约束

    XML_StuGradeExam_domXML解析技术之dom、Sax、dom4j技术演习以及Schema XML文档约束##XML解析开发包Jaxp(sun)Jdomdom4j####ExamExam是一个使用Xml持久化保存数据的xml数据库,该项目是演练dom解析XML技术很好的一个...

    开源XML解析包dom4j

    Dom4j is an easy to use, open source library for working with XML, XPath and XSLT on the Java platform using the Java Collections Framework and with full support for DOM, SAX and JAXP. Dom4j是一个...

    dom4j使用简介

    Dom4j 是一个易用的、开源的库,用于 XML,XPath 和 XSLT。它应用于 Java 平 台,采用了 Java 集合框架并完全支持 DOM,SAX 和 JAXP

    dom4j,最新版本2.1.3

    Dom4j是一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP。解析xml的dom4j,最新版本2.1.3。各大开源软软件使用最广泛

    dom4j的jar包以及说明文档

    dom4j is an easy to use, open source library for working with XML, XPath and XSLT on the Java platform using the Java Collections Framework and with full support for DOM, SAX and JAXP.

    dom4j---xml解析jar包

    dom4j是一个简单的开源库,用于处理XML、 XPath和XSLT,它基于Java平台,使用Java的集合框架,全面集成了DOM,SAX和JAXP。

    jaxp的四个jar包

    jaxp-api.jar sax.jar dom.jar xercesImpl.jar

    dom4j-1.6.1.jar

    dom4j是一个简单的开源库,用于处理XML、 XPath和XSLT,它基于Java平台,使用Java的集合框架,全面集成了DOM,SAX和JAXP。

    dom4j帮助文档

    Dom4j is an easy to use, open source library for working with XML, XPath and XSLT on the Java platform using the Java Collections Framework and with full support for DOM, SAX and JAXP.

    dom4j-1.6.1.jar jar包

    dom4j是一个非常非常优秀的JavaXML API 越来越多的Java软件都在使用dom4j来读写XML ...它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP DOM4J使用起来非常简单。只要你了解基本的XML-DOM模型,就能使用

    dom4j完整版.zip

    Dom4j是一个易于使用的,开源的库,在Java平台上与XML,XPath,XSLT协同工作。使用Java集合框架,全面支持DOM,SAX,JAXP

    dom4j 1.6.1 jar包 zip

    Dom4j是一个易于使用的,开源的库,在Java平台上与XML,XPath,XSLT协同工作。使用Java集合框架,全面支持DOM,SAX,JAXP

    使用jaxp开发包中的SAX方式解析xml文档

    day02_xml *demo01.App1\App2\App3 使用jaxp开发包中的SAX方式解析xml文档,该方式只能读取文档 *demo4j01.App dom4j CURD XML *domo4j.ex 对dom4j 的封装例子

    dom4j插件 用于XML

    dom4j插件 用于XML Dom4j是一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP。(Hibernate用此项目来解析hbm映射文件)

    xml基础和Dom4j使用

    经典的PPT 和 笔记 非常的通俗易懂 Dom4j 是一个易用的、开源的库,用于 XML,XPath 和 XSLT。它应用于 Java 平 台,采用了 Java 集合框架并完全支持 DOM,SAX 和 JAXP。

Global site tag (gtag.js) - Google Analytics