欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

xml文件解析

程序员文章站 2024-01-12 22:12:28
...
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吧!