VB6读写XML的有关问题
VB6读写XML的问题
我用IXMLDOMNode类读写一个xml,文件格式如下
我想遍历一级节点“Total”和二级节点“Message”,取出test的属性值,用了以下代码:
但是,用我的代码只能取出一级节点的第一个数据块,也就是只能获取到aa bb的值,cc dd再往后就是获取不到,请高手帮我看下,谢谢!
------解决思路----------------------
------解决思路----------------------
操作XML就应该用XPath啊。
[code=txt] Dim NodeList As IXMLDOMNodeList
Dim i As Long
Set NodeList = xml.selectNodes("Data//Total//Message//test//@Type")
For i = 0 To NodeList.length - 1
Debug.Print NodeList(i).Text
Next[/code]
我用IXMLDOMNode类读写一个xml,文件格式如下
<Data>
<Total>
<Message>
<test Type="aa" />
</Message>
<Message>
<test Type="bb" />
</Message>
...
</Total>
<Total>
<Message>
<test Type="cc" />
</Message>
<Message>
<test Type="dd" />
</Message>
...
</Total>
</Data>
我想遍历一级节点“Total”和二级节点“Message”,取出test的属性值,用了以下代码:
Set NodeList = Xml.documentElement
For Each ChildNode In NodeList.childNodes
Set ChildMessage = ChildNode.selectSingleNode("//Message")
For Each ChildData In ChildMessage.childNodes
xlst.Cells(i + 1, 1) = ChildData.selectSingleNode("test").Attributes(0).Text
i = i + 1
DoEvents
Next
Next
但是,用我的代码只能取出一级节点的第一个数据块,也就是只能获取到aa bb的值,cc dd再往后就是获取不到,请高手帮我看下,谢谢!
------解决思路----------------------
Set NodeList = XML.documentElement.selectNodes("//test")
For Each childnode In NodeList.childNodes
Debug.Print childnode.Attributes(0).Text
Next
------解决思路----------------------
操作XML就应该用XPath啊。
[code=txt] Dim NodeList As IXMLDOMNodeList
Dim i As Long
Set NodeList = xml.selectNodes("Data//Total//Message//test//@Type")
For i = 0 To NodeList.length - 1
Debug.Print NodeList(i).Text
Next[/code]