xml有四种解析器
1、
DOM
官方 W3C 标准,把xml文档转化为一个包含其内容的树,并可以对树进行遍历。
优点:编程容易,开发人员只需要调用建树的指令,然后利用navigation APIs访问所需的树节点来完成任务。
缺点:由于使用 DOM 解析器的时候需要处理整个 XML 文档,,所以对性能和内存的要求比较高,尤其是遇到很大的 XML 文件的时候。
适用于:由于它的遍历能力,DOM 解析器常用于 XML 文档需要频繁的改变的服务中。
2、
SAX
采用基于事件的模型,它在解析 XML 文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到。
优点:对内存的要求比较低;
缺点:编码工作会比较困难,而且很难同时访问同一个文档中的多处不同数据。
适用于:让开发人员自己来决定所要处理的tag,特别是当开发人员只需要处理文档中所包含的部分数据时,SAX 这种扩展能力得到了更好的体现。
3、
JDOM
简化与 XML 的交互并且比使用 DOM 实现更快。
JDOM 自身不包含解析器。它通常使用 SAX2 解析器来解析和验证输入 XML 文档。
JDOM 与 DOM 主要有两方面不同:
首先,JDOM 仅使用具体类而不使用接口。这在某些方面简化了 API,但是也限制了灵活性;
第二,API 大量使用了 Collections 类,简化了那些已经熟悉这些类的 Java 开发者的使用;
4、
DOM4J
DOM4J 使用接口和抽象基本类方法;
DOM4J 是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的 Java 软件都在使用 DOM4J 来读写 XML,特别值得一提的是连 Sun 的 JAXM 也在用 DOM4J.
总结:
a、JDOM 和 DOM 在性能测试时表现不佳,在测试 10M 文档时内存溢出,在小文档情况下还值得考虑使用 DOM 和 JDOM;
b、DOM 仍是一个非常好的选择,DOM 实现广泛应用于多种编程语言,它还是许多其它与 XML 相关的标准的基础,因为它正式获得 W3C 推荐,所以在某些类型的项目中可能也需要它(如在 javascript 中使用 DOM)。
c、SAX表现较好,这要依赖于它特定的解析方式;
d、DOM4J是最好的,目前许多开源项目中大量采用 DOM4J,例如大名鼎鼎的 Hibernate 也用 DOM4J 来读取 XML 配置文件。如果不考虑可移植性,那就采用DOM4J吧!
分享到:
相关推荐
文章参照万维网联盟(W3C)定义的文档对象模型(DOM)标准接口文档,介绍了一种在标准C++语言的基础上实现DOM接口的方案,该方案不仅达到了用DOM接口的方式解析XML文件的目的,还避免了一些常用的XML解析器存在的解析速度慢...
XML文件解析工具类
XML文件解析编辑小工具 firstobject xml editor 2.4,绿色小巧方便实用
工具内容包括java程序开发中文件配置解析需要实用的jar包工具——[dom4j-1.6.1.jar]&[jaxen-1.1-beta-6.jar]
XML 001 XML概述、编写XML文档
自己编写的天气预报小程序,使用了sqlit数据库,xml文件解析等方法。
pomxml文件解析pomxml文件解析pomxml文件解析
TinyXML2是simple、small、efficient开源的C++ XML文件解析库,可以很方便的应用到现有的项目之中。非常适合存储简单数据,配置文件,对象序列化等数据量不是很大的操作。
javascript 对xml文件解析 解决大家常见的javascript对xml文件解析问题
C++实现对xml文件的解析,C++实现对xml文件的解析,C++实现对xml文件的解析。
一款轻量级的XML解析器,能够容易的解决中文问题 如果你要做的东西不是非常大的项目的话,比较...rar压缩包中包含了TinyXML解析器配套的文档,支持C、c++的轻量级的XML文档解析器,支持中文,非常适合不太大的项目
Tinyxml文件解析经典例子
自学xml文件解析用的文档,tinyxml2解析文档较简单,内含源码及中文说明
C++编写的xml文件解析的类,能够读取xml文件,解析关键字段
读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API...这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。
xml文件解析经典样例xml文件解析经典样例
xml 文件解析,详细的资料,不要积分,欢迎下载
xml 文件解析,可以在vc中直接使用的简易xml解析工具,方便简单快截
基于c++的xml文档解析器源代码。实现对标准xml文档解析:读取、遍历、查找、插入、保存等基本操作。