我是新来的VB6,并与不同深度的标签,如以下面的例子来解析XML文档:如何解析XML文件在VB6递归
<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
的问题是,它是不可能调用子printNode与型IXmlDomNode的参数节点。当我尝试运行该程序,我总是得到一个runtimeerror 438它说对象不支持此功能
节点确实存在,我测试了这一点,并可以打印的名称和节点的值。
任何人都可以解释我的原因,并给我一个提示如何/解决方案我可以如何解决这个问题?
你不解析任何东西。您已经要求MSXML进行解析。你似乎在努力穿越DOM。 – Bob77
你说得对。感谢您纠正我,我的描述在这一点上并不完全正确。问题是遍历DOM – moony