使用VBA重复Xpath时,以XML格式获取子标记的值

时间:2018-05-31 06:54:46

标签: xml vba xpath

我有一个XPath可以说" / rrr / aaa / Parenttag / Childtag"在父母的帮助下。我需要获取Child标记中的值。此Xpath在同一个Xml文档中重复多次。所以我使用" / rrr / aaa / Parenttag / Childtag"与' ' (星号)在开头。

我现在面临的问题是我的Xpath也是另一个父母的一部分。当我使用" *"时,也会获取来自的数据。有没有办法只从其他父母那里获取数据?

我希望我的解释是可以理解的。

感谢您的帮助。

编辑:

我无法上传实际的XML。所以这里是我所拥有的XML结构的片段。

Please click link to see an image of how my data is structured

XPath是/ rrr / aaa / bbb。我需要bbb中存在的值,以便它重复的所有时间。我使用* / rrr / aaa / bbb作为Xpath使用以下代码来获取我想要的数据。但是,我需要仅存在于父标记下的数据。重复相同的标签。

Range("A2").Value = "*/rrr/aaa/bbb"

Set nodeXML = xmlDoc.getElementsByTagName(Range("A2").Value)

For i = 0 To nodeXML.Length - 1

    For Each chlnodes In nodeXML(i).ParentNode.ChildNodes
           Next chlnodes

    Range("B" & i + 1).Value = nodeXML(i).Text
Next

希望这更有意义。

感谢。

1 个答案:

答案 0 :(得分:0)

@Andersson的答案

root1/rrr/aaa/bbb