除了作为 XML 数据的概念性描述这个角色之外,DOM 还是万维网联盟(World Wide Web Consortium,W3C)维护的一系列推荐标准。DOM 最初被当作 Web 浏览器识别和处理页面元素的方式 —— 即在 W3C 介入之前的功能,称为“DOM Level 0”。
实际的 DOM 推荐标准(当前处于 Level 2,在本教程编写之际,Level 3 已呼之欲出)是一个 API,它定义了 XML 文档中出现的对象,以及用于访问和处理这些对象的方法和属性。
DOM 文档
是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中导航仪寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而 DOM 被认为是基于树或基于对象的。
对于特别大的文档,解析和加载整个文档可能很慢且很耗资源,因此使用其他手段来处理这样的数据会更好。这些基于事件的模型,比如 Simple API for XML(SAX),适用于处理数据流,即随着数据的流动而依次处理数据。
基于事件的 API 消除了在内存中构造树的需要,但是却不允许开发人员实际更改原始文档中的数据。
DOM 路标图
DOM 的使用涉及到几个相互配合的概念。您将在本教程的过程中了解到这些关系。
解析器是一个软件应用程序,设计用于分析文档(这里是指 XML 文件),以及做一些特定于该信息的事情。在诸如 SAX 这样基于事件的 API 中,解析器将向某种监听器发送事件。在诸如 DOM 这样基于树的 API 中,解析器将在内存中构造一颗数据树。