常见的DOM解析技术

解析技术不同点相同点
DOM

(文档对象模型)

(>10M的文档,内存溢出)

    将XML文件的内容一次性的读入内存中再进行操作,采用建立树形结构的方式访问XML文件。处理大型文件时,性能下降的很厉害。DOM的树结构占内存比较多。由于树在内存中是持久的,所以修改方便。非常接近底层,是最基本的访问XML的API,但是使用不是很方便。
SAX

(事件驱动模型)

(性能测试时,表现良好)

    SAX采用的事件模型,按树型结构遍历XML文件,一次只取出节点处的内容到内存中进行操作。不需要一次性的装载整个文件。当遇到文件头或者文件尾时会触发事件。用户通过再其回调事件中写入处理代码来进行处理XML文件,适合对XML的顺序访问。优点是:读取数据时检查数据,不需要将数据存在内存中,对于大型文档来说,访问速度快。比DOM快多了。
JAXP

(DOM和SAX接口的实现)

    SUN公司在以上两套API的基础上开发出来的操作XML的API,兼有DOM和SAX两种模式,其目的就是为了向编程人员提供更为直观、便捷的API兼容了以上两种
JDOM

(>10M的文档,内存溢出)

    是一种面向Java的读、写和操作XML文档的API。与现行的SAX和DOM标准兼容。大大简化了Java程序员的操作XML。用20%(或者更少)的精力解决80%(或者更多)的Java/XML问题。现在比较流行的开源的JavaXML解析实现,现在更多的应用采用DOM4J和JDOM,两者操作接口更为便捷。(不符合W3C的规范)
DOM4J

(性能完美)

    用于XML,XPath和XSLT。Java平台。采用Java集合框架,并完全的支持DOM、SAX、JAXP。Hibernate使用了DOM4J来读取XML配置文件。
Xerces

(地球上最快的XML解析器)

继承自JAXP的实现
Crimson
SaAX 基于流的XML解析模式,Java实现的XML拉式解析器。
 

全部评论

联系我们

025-66041049

在线咨询:点击这里给我发消息

邮件:face2obejct@gmail.com

工作时间:8:00-23:50

QR code