要获得更多的关于XML句法、DTD和schema的信息,并且使用DOM和SAX来分析,就请察看的“XML补习班”系列。
使用DOM剖析器你可以进行三项基本的任务:读取已有的文档、编辑已有的文档和创建新文档。你也可能很关心如何使用这种或那种方法查验一篇文档。我编写了一个叫做BookEditor的VB6样本程序,用它就能演示如何使用MSXML的DOM剖析器创建一个新文档并填入内容,并使这篇文档看起来和我在“补救XML”系列中所使用的XML书目文件相象。在此可以下载此程序的代码。
DOM剖析器自身是在DOMDocument对象里实现的,这个对象也代表着DOM树最终的根。不幸的是,能在MSXML2库里能找到的DOMDocument对象不止4个——这是个很让人困惑的事。至于为什么微软的能够创建这么多文档对象不是本文所要涉及的(这涉及向后兼容和COM ProgID)。那么我们就把DOMDocument40当作是DOMDocument的最新版本,并在本文中使用它。
文档中所找到的所有元素被安置到文档对象的子节点中,这个对象会公开很多用于创建不同类型节点的Factory方法,而这些方法在你操作文档的时候会被用到。IXMLDOMNode是操作XML文档时所要使用的各种类型节点的基类。图A是你需要关注的节点类型。
图A
节点目标 | DOMDocument40 Factory method | 使用方法 |
IXMLDOMNode | createNode() | 树节点所有类型的基类。 |
IXMLDOMElement | createElement() | 代表一个XML元素(标签对)。 |
IXMLDOMAttribute | createAttribute() | 代表一个属性。 |
IXMLDOMProcessingInstruction | createProcessingInstruction() | 代表一个处理指令,就像XML的版本声明。 |
几个关键的节点类型