1

在这个关于dom vs sax的讨论中

选择的答案说:

DOM is easier to use but has an overhead of parsing the entire XML before you can start using it

我知道在 SAX 中,您不需要解析整个 xml。假设我正在使用 Sax 解析器并且我想找到一个特定的节点。现在如果节点接近 xml 文档的末尾,sax 解析器如何在不解析整个 xml 的情况下找到它?

我的另一个问题是为什么在 sax 中我们不能插入/删除节点?出于某种原因,这些答案在“sax 是基于事件的”语句中并不明显。

4

1 回答 1

0

Dom 和 Sax 方法都读取所有文件!

这只是意味着 Dom 正在解析每个节点,以便它在内存中创建一棵树,您可以在其中使用 Dom 请求获得所需的内容。

Sax 不同,它不解析文件,它只会在读取文件时发生的每个事件后通过回调通知您,例如:startDocument、startElement、endElement、endDocument ... 在这些方法中您可以检查名称以每个标签/属性为例,只需选择您感兴趣的内容即可。

于 2013-08-07T14:17:34.077 回答