xml-parsing – SAX和DOM之间有什么区别?

我读了一些关于XML解析器的文章,遇到了SAX和DOM。

SAX是基于事件的,DOM是树模型 – 我不明白这些概念之间的差异。

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

我的理解是正确的吗?

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

好,你很近。

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

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

一般来说,DOM更容易使用,但是在开始使用DOM之前需要解析整个XML。

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念