我有以下XML结构:
<xml>
<value>b</value>
<objects>
<object>
<value>a</value>
</object>
<object>
<value>b</value>
</object>
</objects>
</xml>
我想要的是根据xml中的值选择第二个对象。
这个XPath有效:
//xml/objects/object[value = 'b']
此XPath不返回结果:
//xml/objects/object[value = //xml/value/text()]
是否不支持嵌套的XPath表达式?
答案 0 :(得分:1)
它们是,但谓词中的搜索始终与您当前所处的上下文相关。
目前,您开始寻找<xml/>
元素,该元素是<object/>
的子元素,因为没有它会产生空结果集。
使用../
或parent::*
您可以转到父级的轴,并可以选择所需的值:
//xml/objects/object[value = ../../value]