小编典典

SAX 和 DOM 有什么区别?

all

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

SAX 是基于事件的,而 DOM 是树模型——我不明白这些概念之间的区别。

据我了解,基于事件的意思是节点发生了某种事件。就像当一个人点击一个特定的节点时,它会给出所有的子节点,而不是同时加载所有的节点。但是在 DOM
解析的情况下,它将加载所有节点并制作树模型。

我的理解正确吗?

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


阅读 142

收藏
2022-05-16

共1个答案

小编典典

好吧,你很接近。

在 SAX 中,在解析 XML 时触发事件。当解析器在解析 XML
时,遇到一个开始的标签(例如<something>),然后它触发tagStarted事件(事件的实际名称可能不同)。类似地,当解析 (
</something>) 时遇到标记的结尾时,它会触发tagEnded。使用 SAX 解析器意味着您需要处理这些事件并理解每个事件返回的数据。

在 DOM 中,解析时不会触发任何事件。解析整个 XML,并生成并返回 DOM 树(XML 中的节点)。解析后,用户可以导航树以访问先前嵌入在 XML
中的各个节点中的各种数据。

通常,DOM 更易于使用,但在开始使用之前需要解析整个 XML。

2022-05-16