XML对象模型是一个对象集,可以使用这个对象集来访问或处理存储在XML文档中的数据。XML文档构成一颗树,树上的每一个元素可以看作是一个节点,具有不同属性和方法的对象代表了树和它的节点,每个节点包含文档中的实际数据。
如何访问树中的节点?
可以通过象脚本来访问树中的节点。这些对象是在解析器装载并解析XML文档时由XML解析器创建的。通过ID值可以引用树,或文档对象。在下面的例子中,MyXMLDocument是文档的对象的ID值,使用文档对象的属性和方法可以访问树的根和子节点对象。根,或文档元素,是最顶层的节点,子节点从根上扩展开形成XML树。根节点只可以在文档中出现一次。
点击下面的数据岛可以展示用来访问每个节点的代码。根节点是<class>,它的子节点是<student>,这个子节点还有两个子节点<name>和<GPA>。
<XML ID="MyXMLDocument">
<class>
<student studentID="13429">
<name>Jane Smith</name>
<GPA>3.8</GPA>
</student>
</class>
</XML>
下面列出了一些简单的属性和方法,可用来访问XML文档的节点。
XMLDocument:返回对XML文档对象模式的引用。
documentElement:返回XML文档的根节点。
childNodes:返回节点的孩子节点目录。
item:通过索引访问目录中的个别节点。索引值是从0开始的,所以item(0)返回第一个节点。
text:返回节点的内容。
下面是一个带有数据岛的HTML页面。数据岛被包含在<XML>元素中。
<HTML>
<HEAD>
<TITLE>HTML with XML Data Island</TITLE>
</HEAD>
<BODY>
<P>Within this document is an XML data island.</P>
<XML ID="resortXML">
<resorts>
<resort>Calinda Cabo Baja</resort>
<resort>Na Balam Resort</resort>
</resorts>
</XML>
</BODY>
</HTML>
你能通过ID属性访问数据岛,“resortXML”成为文档对象的名称。你能利用这个对象的方法和属性访问它的根节点和孩子节点。在上面的例子中,根节点是<resorts>,孩子节点是<resort>。
下面的代码访问第二个孩子节点<resort>并返回它的内容“Na Balam Resort”。
resortXML.XMLDocument.documentElement.childNodes.item(1).text
如何获得XML DOM树的信息?
有以下几种方法和接口来获得DOM的信息。
如果使用脚本语言,DOMDocument对象提供load、loadXML、save方法和xml属性。
对Visual Basic 和 C 或 C++ 编程者来说,IXMLDOMDocument接口提供和DOMDocument对象同样的成员。
IXMLDOMDocument也可以实现标准的COM接口,如IPersistStreamInit、IPersistMoniker和IStream。