2

我有一个可以从 Internet 下载的大 xml 文件。为了解析它,我尝试使用 DOM 解析器,但是它不允许我跳过某些标签,因为它给了我一个错误。有没有解决的办法?如果我理解正确,SAX 解析器允许您跳过标签,而 DOM 不允许。有人可以澄清这个事实吗,好像是这样,我无法理解 DOM 解析器的优势是什么。提前致谢。

4

1 回答 1

12

DOM 被设计为一个独立于语言的对象模型来保存任何 XML 数据,因此它是一个庞大而复杂的系统。它非常适合首先加载 XML 文档,然后对其执行各种操作的两阶段方法。另一方面,SAX 被设计为使用单相方法的相当轻量级的系统。使用 SAX,在加载文档时执行用户指定的操作。一些应用程序使用 SAX 生成更小的对象模型,过滤掉不感兴趣的信息,然后像 DOM 一样处理这些信息。请注意,尽管 DOM 和 SAX 是众所周知的“标准”XML API,但还有很多其他可用的 API,有时特定应用程序使用非标准 API 可能会更好。对于 XML,重要的始终是数据。代码可以重写。

一些快速要点:

  1. SAX 比 DOM 快。
  2. SAX 适用于大型文档,因为它占用的内存比 Dom 少。
  3. SAX 花费更少的时间来读取文档,而 Dom 花费更多的时间。
  4. 使用 SAX,我们可以访问数据,但不能修改数据。使用 Dom,我们可以修改数据。
  5. 我们可以随时随地停止 SAX 解析。
  6. SAX 是顺序解析,但使用 DOM,我们也可以向后移动。
  7. 解析机器生成的代码 SAX 更好。解析人类可读的文档 DOM 很有用。
于 2012-08-02T08:51:33.733 回答