我是 vb6 的新手,必须解析具有不同标签深度的 xml 文档,如下例所示:
<start>
<b>text1</b>
<c>
<c1>
<d>text</d>
</c1>
</c>
</start>
我正在使用 MSXML 并尝试递归解决这个问题。我的代码是:
Sub1()
Set objXML = CreateObject("Msxml.DOMDocument")
objXML.async = True
objXML.Load "text.xml"
Dim nodeList As IXMLDOMNodeList
Dim node As IXMLDOMNode
Set nodeList = objXML.selectNodes("*")
For Each node In nodeList
print node.nodeName ' this works'
printNode (node) 'here is the problem explained below'
Next node
End Sub
Sub printNode(node As IXMLDOMNode)
Dim xmlNode As IXMLDOMNode
If node.hasChildNodes Then
For Each xmlNode In node.childNodes
printNode (xmlNode)
Next xmlNode
Print node.nodeName
End If
End Sub
问题是无法使用IXmlDomNode类型的参数node调用子printNode。当我尝试运行程序时,我总是得到一个运行时错误 438,它说对象不支持这个函数
节点确实存在,我对此进行了测试,可以打印节点的名称和值。
谁能解释我的原因并提示我如何解决这个问题?