|
XML文档本身是一个文本文件,在需要访问文档中的内容时,需要XML解析器进行语法验证和提取内容。两个著名的XML解析器的标准规范分别是W3C标准组织制定的文档对象模型(Document Object Model, DOM)和XML_DEV邮件列表成员定义的简单应用程序接口(Simple APIs for XML, SAX)。
|
|
|
|
|
|
从上图中可以看出,应用程序不是直接对XML文档进行操作,而是首先由XML解析器对XML文档进行分析,然后应用程序通过XML解析器所提供的DOM接口或SAX接口对分析结果进行操作,从而实现对XML文档的访问。
|
|
|
|
在应用程序中,基于DOM的XML解析器将一个XML文档转换成一棵DOM树,应用程序通过DOM树来实现对XML文档数据的操作。DOM API提供给用户的是一种随机访问机制。通过它,应用程序不仅可以在任意时刻访问XML文档中的任何数据,而且可以任意地插入、删除、修改和存储XML文档的内容。
|
|
|
DOM解析器所采用的树型结构思想与XML文档结构吻合,应用十分广泛,但是对机器性能的要求较高,实现效率不是十分理想。
|
|
|
|
与DOM不同,SAX采用的是顺序访问模式,是一种快速读写XML数据的方式。当SAX解析器对XML文档进行分析时,会触发一系列事件,并激活相应的事件处理函数,应用程序通过这些事件函数实现对XML文档的访问。同DOM解析器相比,SAX实现简单,效率较高,但是缺乏灵活性,仅适用于访问XML数据,不适用于对文档进行更改的应用程序。
|
|
|