由于XML文档是以树形结构为格式,所以通常采用TreeView控件显示它们。以下码段说明了如何在Visual Basic
6将XML文档传入一个TreeView控件。
首先,建立一个新的带有窗体的Visual Basic
6工程,然后在窗体中添加一个TreeView控件,并添加一个引用到微软XML解析器。
接着,在Form_Load事件中添加如下的代码:
Private Sub Form_Load() Dim objDOM As DOMDocument
Set
objDOM = New DOMDocument Call objDOM.loadXML(
_ "<Doc><Node1></Node1><Node2><ChildNode/></Node2></Doc>")
Call
AddNode(objDOM.documentElement, Nothing)
Set objDOM =
Nothing End Sub
以上代码建立并传入XML,然后调用AddNode方法。它包含两个变量:添加的XML节点,添加的TreeView节点。AddNode方法第一次被调用,"Nothing"被传递到TreeNode变量。
Private Sub AddNode(ByRefXMLNode As IXMLDOMNode, ByRefTreeNode As
Node) Dim objNode As Node Dim xmlNodeList As
IXMLDOMNodeList Dim lngNodeIndex As Long
On Error GoTo
ERR_HANDLER
If TreeNode Is Nothing Then Set objNode =
TreeView1.Nodes.Add Else Set objNode =
TreeView1.Nodes.Add(TreeNode, tvwChild) End If
objNode.Text =
XMLNode.nodeName objNode.Expanded = True
'== Add child
nodes Set xmlNodeList = XMLNode.childNodes For lngNodeIndex = 0 To
xmlNodeList.length - 1 Call AddNode(xmlNodeList.Item(lngNodeIndex),
objNode) Next lngNodeIndex
ERR_HANDLER: If Err.Number <>
0 Then MsgBoxErr.Description End If End
Sub
首先AddNode方法添加一个新的节点到树形控件,然后将节点的文本传递给XML节点的名称。如果XML节点包含有子节点,AddNode方法则递进地添加子节点,直到所有子节点被传递。
|