CSDN博客

img arthur_zhgzhang

SAX和DOM

发表于2004/6/28 15:56:00  1311人阅读

SAX是用于处理 XML 的基于事件的 API,SAX 是对“文档对象模型”或者 DOM 的补充

DOM 是用于由 W3C 发布的 XML 语法分析器的基于对象的 API

SAX:

  • 是基于事件的 API。
  • 在一个比 DOM 低的级别上操作。
  • 为您提供比 DOM 更多的控制。
  • 几乎总是比 DOM 更有效率。
  • 但不幸的是,需要比 DOM 更多的工作。

作为基于对象的接口,DOM 通过在内存中显示地构建对象树来与应用程序通信。对象树是 XML 文件中元素树的精确映射。

DOM 易于学习和使用,因为它与基本 XML 文档紧密匹配。它对于我称为以 XML 为中心的应用程序(例如,浏览器和编辑器)也是很理想的。以 XML 为中心的应用程序为了操纵 XML 文档而操纵 XML 文档。

对于不以 XML 为中心的应用程序,SAX 是明智的选择。实际上,SAX 并不在内存中显式地构建文档树。它使应用程序能用最有效率的方法存储数据。

在需要更多控制时使用 SAX;要增加方便性时,则使用 DOM

采用 SAX 的主要原因是效率。SAX 比 DOM 做的事要少,但提供了对语法分析器的更多控制。当然,如果语法分析器的工作减少,则意味着您(开发者)有更多的工作要做。SAX 比 DOM 消耗的资源要少

SAX 的主要限制是它无法向后浏览文档。实际上,激发一个事件后,语法分析器就将其忘记。如您将看到的,应用程序必须显式地缓冲其感兴趣的事件。

SAX,功能强大的 API
SAX 是由 XML-DEV 邮件列表的成员开发的一种用于基于事件的语法分析器的标准和简单的 API。SAX 是“Simple API for XML”的缩写。

SAX 最初是为 Java 而定义,但是它也可以用于 Python、Perl、C++ 和 COM(Windows 对象)。以后一定还有更多的语言绑定。而且,通过 COM,SAX 语法分析器还可以用于所有 Windows 编程语言,包括 Visual Basic 和 Delphi。

一些支持 SAX 的语法分析器包括 Xerces,Apache parser(以前的 IBM 语法分析器)、MSXML(Microsoft 语法分析器)和 XDK(Oracle 语法分析器)。这些语法分析器是最灵活的,因为它们还支持 DOM。

摘自http://www-900.ibm.com/developerWorks/cn/xml/x-saxapi/index.shtml

0 0

相关博文

我的热门文章

img
取 消
img