嵌套xpath:如何使用XPath表达式的结果作为值?

时间:2014-04-08 10:20:53

标签: xpath

我有以下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表达式?

1 个答案:

答案 0 :(得分:1)

它们是,但谓词中的搜索始终与您当前所处的上下文相关。

目前,您开始寻找<xml/>元素,该元素是<object/>的子元素,因为没有它会产生空结果集。

使用../parent::*您可以转到父级的轴,并可以选择所需的值:

//xml/objects/object[value = ../../value]