什么是XML DOM?
原文:What is XML DOM? 翻译:YuL
文档对象模型(DOM)是在MSXML中一种程序化描述XML文档、片段、节点、节点集的实现方式,也为处理XML数据提供一种应用程序接口(API)。作为一种XML的描述,它符合W3C组织的DOM规范;作为一组API集合,它又是一组COM对象,这些对象实现接口,并能够被应用于XML应用程序中,很多编程语言都可以编写它,如:C/C++、VB、VBS、JS。
下面用JS(JScript)程序片段来大致说明使用XML DOM编程的基本过程。
* 编程处理XML数据,你首先创建一个XML DOM对象。例如下面JS代码片段:
var
xmldoc
=
new
ActiveXObject(
"
Msxml2.DOMDocument.3.0
"
);
* 然后,你可以从一个文件加载XML数据到DOM对象,如下:
xmldoc.load(
"
file.xml
"
);
* 你还可以从一个XML流来加载XML数据到DOM对象,这个XML流可能来自其他的应用程序,或者是动态创建的:
strXML
=
"
<a><a1>1</a1><a2>2</a2></a>
"
;
xmldoc.loadXML(strXML);
xmldoc.loadXML(strXML);
* 要导航到XML文档的一个节点,你可以专门用一个XPath表达式来调用DOM实例多个方法中的一个,例如:
var
node
=
xmldoc.selectSingleNode(
"
//a2
"
);
// 插入一个新元素到DOM对象中,可以设置属性和调用对象的方法,也可能是调用它的子对象的方法。例如:下面的代码片段就是补一个空元素<a3>作为<a>的一个新的子元素:
xmldoc.documentElement.appendChild( xmldoc.createElement( " a3 " ) );
// 插入一个新元素到DOM对象中,可以设置属性和调用对象的方法,也可能是调用它的子对象的方法。例如:下面的代码片段就是补一个空元素<a3>作为<a>的一个新的子元素:
xmldoc.documentElement.appendChild( xmldoc.createElement( " a3 " ) );
* 要持久化一个DOM对象,就要调用对象的save方法:
xmldoc.save(
"
new.xml
"
);
* 要执行XML文档的XSL转换(XSLT),你可以创建其他的DOM对象来遵循这个XSLT样式单,并且为这个XML文档调用DOM对象的transformNode方法:
var
xslt
=
new
ActiveXObject(
"
msxml2.DOMDocument.3.0
"
);
xslt.load( " transform.xsl " );
strXML = xmldoc.transformNode(xslt);
xslt.load( " transform.xsl " );
strXML = xmldoc.transformNode(xslt);
这仅仅是一些很简单的例子来向你说明怎样使用DOM去处理XML文档。更多的细节讨论和讲述由本指南的后续部分提供。