- Office VBA開發經典:中級進階卷
- 劉永富 劉行
- 717字
- 2019-11-22 18:29:12
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的語法規則,會彈出“你的代碼不合法,裝載失?。 钡木鎸υ捒颉?/p>
上述過程運行后,立即窗口顯示的運行結果如圖4-7所示。
注意,創建XML的字符串中,表示元素的屬性值時,可以用單引號代替雙引號。

圖4-7 XML文檔裝載字符串
4.4.5 保存XML文件
不管是從哪一個來源裝載的DOMDocument,隨時都可以使用DOMDocument對象的Save方法保存為本地XML文件。用法如下。
DOC.Save "C:\build\temp.xml"
其中DOC就是一個DOMDocument對象,運行上述語句,會在指定路徑下生成一個XML文件。