XPathselect具有某个属性值的节点等于某个其他节点的属性值

<grand id="grand"> <parent> <child age="18" id="#not-grand"/> <child age="20" id="#grand"/> <!-- This is what I want to locate --> </parent> </grand> 

有谁能告诉我如何expression寻找第二个孩子?

这不起作用…

 "/grand/parent/child[@id=concat('#',/grand/@id)]/@age" 

谢谢。


对不起。 expression是好的。 我发现我在其他方面遇到了一些问题,而不是expression本身。

这个XPath特定于您提供的代码片段。 要selectid为<child>作为#grand你可以写//child[@id='#grand']

为了得到年龄//child[@id='#grand']/@age

希望这可以帮助

我想这是你想要的:

 /grand/parent/child[@id="#grand"]