Office VBA开发经典:中级进阶卷
上QQ阅读APP看书,第一时间看更新

4.4 使用DOMDocument读写XML

既然XML文件是文本文件,那么当然可以用文本文件读写的方式对XML文件进行存取。微软提供了专门针对XML的对象模型DOM(Document Object Model),可以对XML进行全面操作。

4.4.1 引入DOMDocument对象

前期绑定:在VBA工程中添加引用“Microsoft XML, v 6.0”,如图4-6所示。

图4-6 添加外部引用

添加该外部引用后,代码中使用

    Dim Doc As MSXML2.DOMDocument

就声明了一个对象变量。

后期创建DOMDocument对象如下。

    Set Doc = CreateObject("MSXML2.DOMDocument")

下面分别讲述把各种来源的XML载入DOMDocument的方法。

4.4.2 装载本地文件

使用DOMDocument对象的Load函数,可以把本地XML文件装载到DOM对象模型中。

语法如下。

    Load(xmlSource)

参数xmlSource是指XML文件的路径,如果装载成功,Load函数返回True。

下面的过程装载本地XML文件,并在立即窗口打印文档对象的XML代码。

代码分析:无论是DOMDocument,还是其他的各种节点,几乎都有一个XML属性,该属性返回的是对象的XML代码字符串。因此可以通过调用该属性来查看节点的情况。

4.4.3 装载网络文件

很多情况下,XML文件是网络上的一个远程文件,此时可以使用XMLhttp对象通过URL请求,返回一个responseXML,然后赋给DOMDocument对象即可。

下面的代码从w3school网站上获取一个XML文件,然后装载到程序中的DOMDocument对象中。

运行上述代码,立即窗口打印出XML文件的源代码。

4.4.4 装载字符串

除了使用Load函数装载文件外,还可以使用LoadXML函数直接装载程序中的字符串。

下面的过程把程序中的字符串装载到DOMDocument中。

代码分析:如果变量code中的字符串不符合XML的语法规则,会弹出“你的代码不合法,装载失败!”的警告对话框。

上述过程运行后,立即窗口显示的运行结果如图4-7所示。

注意,创建XML的字符串中,表示元素的属性值时,可以用单引号代替双引号。

图4-7 XML文档装载字符串

4.4.5 保存XML文件

不管是从哪一个来源装载的DOMDocument,随时都可以使用DOMDocument对象的Save方法保存为本地XML文件。用法如下。

    DOC.Save "C:\build\temp.xml"

其中DOC就是一个DOMDocument对象,运行上述语句,会在指定路径下生成一个XML文件。