获取相同类型的所有节点

时间:2016-05-28 10:28:55

标签: xml vba nodes

我试图从我的xml中找到的一长串erad节点中获取erad类型的节点

这是获取第一个erad项目的代码

我如何更改此内容以获取每个项目中的所有erads。 XML是一种常规的重复模式

Sub Macro1()
Dim strUrl As String
Dim strXPathBase As String

Dim objDoc As Object
Set objDoc = CreateObject("MSXML2.DOMDocument")

strUrl = "https://....XML"

objDoc.async = False
objDoc.Load strUrl

strXPathBase = "//response/responseBody/responseList/item/"
Debug.Print "erad1: " & objDoc.SelectSingleNode(strXPathBase & "erad1").Text


Set objDoc = Nothing
End Sub

1 个答案:

答案 0 :(得分:1)

简单地迭代其父<Item>并打印子节点<erad1>。下面使用MSXML对象的早期绑定:

Sub Macro1()

    Dim strUrl As String
    Dim strXPathBase As String  
    ' ADD VBA REFERENCE: MICROSOFT XML, v6.0 '
    Dim objDoc As New MSXML2.DOMDocument60
    Dim itemNode As MSXML2.IXMLDOMNodeList
    Dim i As Variant

    strUrl = "https://....XML"

    objDoc.async = False
    objDoc.Load strUrl

    strXPathBase = "//response/responseBody/responseList/item"    
    Set itemNode = objDoc.DocumentElement.SelectNodes("strXPathBase")

    For Each i in itemNode
        Debug.Print "erad1: " & i.SelectSingleNode("erad1").Text
    Next i

    Set itemNode = Nothing
    Set objDoc = Nothing

End Sub
相关问题