1)DOM(JAXP Crimson解析器) DOM是XML文档的官方W3C标准,以与平台和语言无关的方式表示。DOM是以层次结构组织的节点或信息片断的集合。这种层次结构允许开发人员在树上寻找特定的信息。在做任何工作之前,通常需要加载整个文档和结构层次结构进行分析。DOM被认为是基于树木或对象的,因为它是基于信息层次的。DOM 基于树的广义处理有几个优点。首先,由于树在内存中是持久的,因此可以修改它,以便应用程序可以更改数据和结构。它也可以随时在树上上下导航,而不是像SAX那样一次性处理。DOM使用起来要简单得多。
优点:以与平台和语言无关的方式表示 XML 文档的官方 W3C 标准;方便修改数据。缺点:内存消耗最多 2)SAX SAX处理的优点与流媒体非常相似。分析可以立即开始,而不是等待所有数据处理。此外,由于应用程序只在读取数据时检查数据,因此不需要将数据存储在内存中。这对于大型文档来说是一个巨大的优势。事实上,应用程序甚至不需要分析整个文档;当满足某些条件时,它可以停止分析。一般来说,SAX比DOM快很多。 选DOM还是SAX? 开发人员需要编写自己的代码来处理XML文档, DOM或SAX分析模型的选择是一个非常重要的设计决策。 DOM通过建立树形结构来访问XML文档,而SAX则采用事件模型。 DOM分析器将XML文档转化为包含其内容的树,并可以遍历树木。使用DOM分析模型的优点是编程方便,开发人员只需调用成果指令,然后使用 navigation 访问APIS所需的树节点来完成任务。树中的元素可以很容易地添加和修改。然而,由于DOM分析器在使用时需要处理整个XML文档,因此对性能和内存的要求相对较高,特别是在遇到大型XML文档时。DOM分析器由于其遍历能力,常用于XML文档需要频繁更改的服务。 SAX分析器采用基于事件的模型,可以在分析XML文档时触发一系列事件。当发现给定的标签时,它可以激活一种回调方法,告诉它已经找到了该方法制定的标签。SAX通常对内存的要求较低,因为它允许开发人员决定要处理的标签.特别是当开发人员只需要处理文档中包含的部分数据时,SAX的扩展能力得到了更好的体现。但是,在使用SAX分析器时,很难同时访问同一文档中的许多不同数据。
优点:事件驱动分析,速度快,内存占用少。
缺点:SAX 编码工作难以分析,难以同时访问同一文档中的许多不同数据;不适合处理频繁变化的数据;无法找到节点之间的关系。
3)JDOM https://www.tulingxueyuan.cn/d/file/p/20230518/ihyvwwpy1xh.org JDOM的目的是简化与XML的交互,比使用DOM更快地实现Java特定的文档模型。JDOM一直在大力推广和推广,因为它是第一个Java特定模型。最终将Java标准扩展作为“Java标准扩展”,正在考虑通过“Java标准要求JSR-102”。JDOM开发从2000年初开始。 JDOM和DOM主要有两个不同。首先,JDOM只使用特定类别而不使用接口。这在某些方面简化了API,但也限制了灵活性。第二,API被广泛使用 Collections简化了Java开发者已经熟悉这些类别的使用。 JDOM文档声明其目的是“用20%(或更少)的精力解决80%(或更多)Java/XML问题(根据学习曲线假定为20%)。对于大多数JDOM来说 Java当然,/XML应用程序是有用的,大多数开发人员发现API比DOM容易理解得多。JDOM还包括广泛的程序行为检查,以防止用户在XML中做任何毫无意义的事情。然而,它仍然需要你完全理解XML,以便做一些超出基本的工作(甚至理解某些情况下的错误)。这可能比学习DOM或JDOM接口更有意义。 JDOM本身不包括解析器。它通常使用SAX2分析器来分析和验证XML文档的输入(尽管它也可以表示之前构造的DOM作为输入)。它包含了一些转换器 JDOM表示输出为SAX2事件流、DOM模型或XML文本文档。JDOM是Apache许可证变体下发布的开放源码。
优点:支持xpath;遵循编码2-8的原则,大大降低了代码量;它简化和 XML 与使用相比,互动 DOM 实现更快; jdom本身不包括解析器,底层使用sax来分析XML。
缺点:也将整个文档加载到内存中,消耗内存
4)DOM4J https://www.tulingxueyuan.cn/d/file/p/20230518/n41rdenrn5t 虽然DOM4J代表了一个完全独立的开发结果,但它最初是JDOM的一个智能分支。它结合了许多超出基本XML文档表示的功能,包括集成XPath支持, XML 基于事件的Schema支持和处理大文档或流化文档。它还通过DOM4J提供了构建文档表示的选项 API和标准DOM接口具有并行访问功能。自2000年下半年以来,它一直在发展。 DOM4J使用接口和抽象基本类方法来支持所有这些功能。DOM4J在API中使用了大量的Collections,但在许多情况下,它还提供了一些替代方法,允许更好的性能或更直接的编码方法。DOM4J虽然付出了更复杂的API代价,但却提供了比JDOM更大的灵活性。 DOM4J的目标在添加灵活性、XPath集成和处理大文档时与JDOM相同:Java开发者的易用性和直观操作。它还致力于成比 JDOM更完整的解决方案实现了本质上处理Java/XML所有问题的目标。在实现这一目标时,它比JDOM更少强调防止不正确的应用程序行为。 DOM4J是一个非常非常优秀的Java XML API,它具有性能优异、功能强大、使用方便等特点,也是一款开源代码软件。现在你可以看到越来越多的Java软件使用DOM4J来读写 XML,特别值得一提的是,就连Sun的JAXM也在使用DOM4J.
优点:为xpath提供支持,性能优异,功能强大,极易使用,性能优于jdom(在网上看到测试,分析大文件,jdom内存溢出;分析同一文件dom4j);连 Sun 的 JAXM 也在用 DOM4J;Hibernate 也用 DOM4J 来读取 XML 配置文件
缺点:也将整个文档加载到内存中,消耗内存
本文是转载内容,我们尊重原作者对文章的权利。如有内容错误或侵权行为,请联系我们更正或删除文章。