我有一个不同动物的列表(遵循XML文件),
一些的动物有孩子,
我写了一些印有所有儿童动物名字的东西
它不会起作用
它说“对象不支持此属性或方法”
如果我要替换这一行:
Set list =oDoc.SelectSingleNode("/animal/cat[(@ID)=""17""]")
那个:
Set list = xDoc.SelectNodes("/animal/cat[(@ID)=""17""]")
我的代码工作得很完美,但我不能替换它,因为其他方法要求列表定义如下:
Set list = oDoc.SelectSingleNode("/animal/cat[(@ID)=""17""]")
任何想法,解决我的问题?
注意:不是每个动物都有一个孩子,如果有的话,有些孩子会有4个孩子等等。(我不知道动物可以有多少个孩子)VBA(使用XDoc):
Sub test()
Dim xml As String
xml = ("C:.....\example2.xml")
Dim xDoc As DOMDocument
Set xDoc = New DOMDocument
Dim list As Object
Dim attr As IXMLDOMAttribute
Dim node As IXMLDOMNode
Dim childNode As IXMLDOMNode
Dim oDoc As New MSXML2.DOMDocument60
oDoc.validateOnParse = True
'xDoc.Load xml
'oDoc.Load xml
' Set list = XDoc.SelectNodes("/animal/cat[(@ID)=""17""]")
' Set list = oDoc.SelectSingleNode("/animal/cat[(@ID)=""17""]")
For Each node In list <-- **this line will not work!!**
If (node.HasChildNodes) Then
For Each childNode In node.ChildNodes
Set attr = childNode.Attributes.getNamedItem("Name")
Debug.Print attr.Text
Next childNode
End If
Next node
End Sub
XML:
<animal>
<dog ID="16" Name="Lucy"/>
<cat ID="156" Name="Chloe"/>
<cat ID="17" Name="GAL">
<child ID="173" Name="Tigger"/>
<child ID="1256" Name="Angel"/>
<child ID="256" Name="Peanut"/>
</cat>
<cat ID="18" Name="Charlie">
<child ID="173" Name="Smokey"/>
</cat>
</animal>