SAX Parser

  • Post author:
  • Post category:其他




什么是 SAX

读取和操纵 XML 文件的标准方法是 DOM(“文档对象模型”)。遗憾的是,这种方法需要读取整个文件并将它存储到树结构中,因而效率不高、缓慢,并且会过度使用资源。

一种替代方法是使用 Simple API for XML 或 SAX。SAX 允许正在读取 文档时处理该文档,这避免了在采取操作之前需要等待存储文档的所有内容。

SAX 是由 XML-DEV 邮件列表的成员开发的,Java 版本由 David Megginson 维护。他们的目的是提供一种更自然的方法来使用 XML, 这种方法不会涉及到使用 DOM 的那种开销。

结果是基于事件的 API。解析器将事件(譬如,元素的开始或结束)发送给 处理信息的事件处理程序。然后,应用程序自己可以处理数据。虽然原始文 档保持不变,但 SAX 提供了操纵数据的方法,然后会将该方法导向另一个过 程或文档。

对于 SAX,没有官方的标准;万维网(W3C)或其它官方组织不维护 SAX, 但在 XML 社区中,它是一个事实上的标准。







回页首



SAX 处理是如何工作的

SAX 分析经过其的 XML 流,这非常象老式的自动收报机纸条。考虑以下 XML 代码片断:

<?xml version="1.0"?>
<samples>
<server>UNIX</server>
<monitor>color</monitor>
</samples>

一般情况下,SAX 处理器分析这段代码将生成以下事件:

Start document
Start element (samples)
Characters (white space)
Start element (server)
Characters (UNIX)
End element (server)
Characters (white space)
Start element (monitor)
Characters (color)
End element (monitor)
Characters (white space)
End element (samples)

SAX API 允许开发者捕获这些事件,并对它们进行操作。

SAX 处理涉及以下几步:



版权声明:本文为yeliang0202原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。