XPath:当child propertyvalue以value开头时选择父节点

时间:2014-08-18 22:15:05

标签: xml xpath

我需要选择FOO类型的所有父节点,其中BAR节点是子节点,BAR节点具有以X开头的属性A.

e.g。在下面的示例中,我想选择FOO(id = A),因为我有一个BAR,其属性A以X开头。

<rumba>
  <latin>
    <FOO id="A">
      <BAR id="1" A="XYZ" />
      <BAR id="2" A="ABC" />
    </FOO>
  </latin>
  <salsa>
    <FOO id="B">
      <BAR id="3" A="UVW" />
    </FOO>
  </salsa>
</rumba>

我很确定这可以在XPATH中完成,但是我无法解决这个问题。

2 个答案:

答案 0 :(得分:4)

//FOO[BAR[starts-with(@A, 'X')]]

答案 1 :(得分:1)

我还没有对这些进行测试,但我认为它们应该有效。

如果您的上下文节点是BAR,您可以使用它来查找具有您描述的特征的父级:

../FOO[BAR[starts-with(@A, "X")]]

或者,如果您要在整个文档中搜索符合条件的FOO个节点,您可以使用:

//FOO[BAR[starts-with(@A, "X")]]