为了账号安全,请及时绑定邮箱和手机立即绑定

SAX和DOM有什么区别?

/ 猿问

SAX和DOM有什么区别?

SAX和DOM有什么区别?

我阅读了一些关于XML解析器的文章,并且遇到了SAXDOM

SAX是基于事件的,DOM是树模型 - 我不理解这些概念之间的差异。

根据我的理解,基于事件意味着某种事件发生在节点上。就像当单击特定节点时,它将给出所有子节点,而不是同时加载所有节点。但是在DOM解析的情况下,它将加载所有节点并创建树模型。

我的理解是否正确?

请纠正我如果我错了或以更简单的方式向我解释基于事件和树模型。


查看完整描述

3 回答

?
慕雪9262066

只需几句话......

SAX小号 imple 用于PI X ML):是基于数据流的处理器。你随时只在内存中占有很小的一部分,你可以通过实现类似事件的回调代码来“嗅探”XML流tagStarted()。它几乎不使用内存,但你不能做“DOM”的东西,比如使用xpath或traverse树木。

DOMd ocument Ø bject 中号奥德尔):你加载整个事情到内存-这是一个巨大的内存消耗。你甚至可以用中等大小的文件来记忆。但是你可以使用xpath并遍历树等。


查看完整回答
反对 回复 2019-08-09
?
墨色风雨

这里用简单的话说:

DOM

  • 树模型解析器(基于对象)(节点树)。

  • DOM将文件加载到内存中,然后解析文件。

  • 具有内存限制,因为它在解析之前加载整个XML文件。

  • DOM是读写的(可以插入或删除节点)。

  • 如果XML内容很小,那么更喜欢DOM解析器。

  • 可以使用向后和向前搜索来搜索标签并评估标签内的信息。这样便于导航。

  • 运行时较慢。

SAX

  • 基于事件的解析器(事件序列)。

  • SAX在读取文件时对其进行解析,即逐节点解析。

  • 没有内存限制,因为它不会将XML内容存储在内存中。

  • SAX是只读的,即无法插入或删除节点。

  • 当内存容量很大时使用SAX解析器。

  • SAX从上到下读取XML文件,无法进行后向导航。

  • 在运行时更快。


查看完整回答
反对 回复 2019-08-09
  • 3 回答
  • 0 关注
  • 464 浏览
我要回答

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信