装载XML文档
新建一个VB Standard EXE工程项目。在Form1中添加一个CommandButton控件,将其Name和Caption属性分别设为cmdLoad和Load XML。为了使用msxml解析器,必须事先设置工程项目对msxml.dll的引用。选择Project菜单的 References命令,选中Microsoft XML, version 2.0或更高版本。将下列代码加入 cmdLoad_Click事件:
Option Explicit
Dim xml As DOMDocument
Private Sub cmdLoad_Click()
Set xml = New DOMDocument
Call xml.Load(App.Path & “flight.xml")
' flight.xml为描述航班信息的XML文档
End Sub
Dim root As IXMLDOMElement
Set root = xml.documentElement
遍历节点集合
可以使用Visual Basic的For Each...Next循环结构在节点对象集合中循环。在cmdLoad_Click事件代码后添加下列代码:
Dim node As IXMLDOMNode
For Each node In root.childNodes
Debug.Print node.Text
Next
Dim flightNodes As IXMLDOMNodeList
Set flightNodes = root.selectNodes(“航班")
For Each node In flightNodes
Debug.Print node.selectSingleNode
(“离站时间").Text & “——"
&node.selectSingleNode (“到站时间").Text
Next
Public Sub PrettyPrint(node As IXMLDOMNode,
Optional tabLevel As Integer=0)
Dim childNode As IXMLDOMNode
If node.nodeName<>vbNullStrin
And node.nodeName < >“#text" Then
Debug.PrintString(tabLevel,Chr$(9))
&“< "&node.nodeName&“ >"
End If
If node.hasChildNodes Then
For Each childNode In node.childNodes
Call PrettyPrint(childNode,tabLevel+1)
Next
Else
Debug.PrintString(tabLevel+1,Chr$(9))&node.Text
End If
If node.nodeName< >vbNullString And node.nodeName
< >“#text" Then
Debug.PrintString
(tabLevel,Chr$(9))&“< /"&node.nodeName&“ >"
End If
End Sub
修改节点内容
如同修改数据库中的记录一样,也可以修改XML文档中节点的内容。下列代码修改了flight.xml文档中“发布日期”节点的Text属性值:
Set node = root.selectSingleNode(“发布日期")
If Not node Is Nothing Then
node.Text = “2000年10月20日"
End If