SAX(Simple API for XML)是Java中最广泛采用的XMLAPI,被认为是事实上的标准。虽然它最初是 Java 独有的库,但它现在是一个众所周知的 API,分布在各种编程语言上。它是一个开源项目,最近切换到SourceForge项目基础架构,可以更轻松地跟踪高容量XML-dev列表之外的开放SAX问题。截至 2018 年 1 月 10 日的当前最新版本是 SAX 2.0。它使用事件驱动的串行访问机制来访问 XML 文档,并且经常被需要访问 XML 文档的小程序使用,因为它是可用于分析 XML 文档的最快且占用内存最少的 API。SAX 使用的机制使其独立于之前的元素,即它是独立于状态的。

DOM 代表 文档对象模型。DOM API 提供了读取和写入 XML 文件的类。DOM 读取整个文档。它在读取中小型 XML 文件时很有用。它是一个基于树的解析器,与 SAX 相比有点慢,加载到内存中时占用更多空间。我们可以使用 DOM API 插入和删除节点。

XML解析器

为使用 XML 文档的客户端提供链接应用程序的包称为 XML 分析器。计划阅读XML文件。创建了一个XML解析器,用于执行使用XML的程序。

SAX解析器

SAX 表示一个简单的 XML API,SAX API 由 SAX 解析器实现。此 API 称为基于事件的 API,它提供处理程序上的接口。有四个处理程序接口。ContentHandler、DTDHandler、EntityResolver 和 ErrorHandler 接口。它不创建任何内部结构,而是将输入文档组件的出现作为事件,然后告诉客户端它在读取输入文档时读取的内容。它适用于大型 XML 文件,因为它不需要加载整个 XML 文件。

SAX 解析器的功能

内部结构不能由 SAX 解析器创建。
这些基于事件的 SAX 解析器的工作方式与 Java 中的事件处理程序相同。

SAX 解析器的优点

  • 使用非常简单,内存效率高。
  • 它的运行时间太快了,它可以适用于更大的文档或文件系统。

SAX 解析器的缺点

  • 它理解 API 的能力远不如基于事件的 API。
  • 由于大量数据,无法知道全部信息。

DOM 解析器

DOM 表示文档对象模型。当一个对象包含一些关于XML文档的信息时,称为DOM解析器。这看起来像一个树结构。DOM API 由 DOM 解析器实现,使用起来非常简单。它将XML文档表示为树格式,其中每个元素表示树分支,并创建XML文件的内存树表示形式,然后解析它需要更多的内存。

DOM 解析器的特性

内部结构可以由 DOM 解析器创建。
由于这些内部结构,客户端可以获取有关原始 XML 文档的信息。

DOM 解析器的优点

  • DOM API 易于使用,因此可以执行写入和读取操作。
  • 当需要文档时,它更喜欢可以随机访问的宽部分。

DOM 解析器的缺点

  • 它的内存效率不是太好,它需要更多的内存,因为需要加载XML文档。
  • 与 SAX 解析器相比,它太慢了。

因此,Java 中 SAX 解析器和 DOM 解析器之间的结论性区别如下 -

SAX解析器 DOM解析器
SAX解析器被称为用于XML解析的简单API。 DOM解析器被称为文档对象模型。
SAX解析器是一个基于事件的解析器。 DOM解析器停留在树结构中。
SAX 解析器比 DOM 解析器慢。 DOM解析器比 SAX 解析器更快。
SAX解析器最适合较大尺寸的文件。 DOM解析器最适合较小的文件。
SAX解析器适用于在Java中制作XML文件。 DOM解析器不擅长在低内存中制作 XML 文件。
内部结构不能由 SAX 解析器创建。 内部结构可以由 DOM 解析器创建。
SAX解析器是只读的。 DOM解析器可以插入或删除节点。
在 SAX 解析器中,无法向后导航。 在 DOM 解析器中,可以向后和向前搜索
SAX解析器适用于高效内存。 DOM解析器适用于大型 XML 文档。
XML文件的一小部分仅加载到内存中。 DOM解析器将整个 XML 文档加载到内存中。

SAX解析器和DOM解析器的区别

欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:SAX解析器和DOM解析器的区别
本文链接:https://www.vsdiffer.com/vs/difference-between-sax-parser-and-dom-parser-in-java.html
免责声明:以上内容仅代表 个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。