我一直在搜索SO(以及互联网的其余部分)以获得答案,但我似乎无法找到根据属性选择XML节点的解决方案。
示例XML:
<foo>
<bar name="do">A</bar>
<bar name="rae">B</bar>
<bar name ="mi">C</bar>
</foo>
因此,如果我想通过B
属性的rae
值获取name
,我已尝试过:
myValue = myXML.selectSingleNode("//foo/bar/").Attributes.getNamedItem("rae").Text
谢谢!
答案 0 :(得分:2)
最终为我工作的解决方案是:
myValue = myXML.selectSingleNode("var[@name='ID']").Text
答案 1 :(得分:0)
使用你的例子......
myValue = myXML.SelectSingleNode("/foo/bar[@name='rae']").InnerXML
注意在变量名中使用@。您的标准(方括号之间的所有内容)都在您搜索的级别上。
答案 2 :(得分:0)
如果有多个节点,那么我认为您无法使用SelectSingleNode
。相反,您可以使用XPath和getElementsByTagName。此外,(尽管可能没有必要)确保您只获得一个节点,但可以使用NextNode
。使用您的示例XML的最终代码将是......
myValue = myXML.getElementsByTagName("/foo[@name='rae']/bar").nextNode.nodeTypedValue