XPath表达式,其中带有后缀的属性与没有后缀的另一个元素的属性匹配?

时间:2013-10-05 03:39:37

标签: xpath

我正在寻找一个XPath表达式,用于选择具有父him的{​​{1}},grampsname的{​​{1}}具有相同的根名称hims Jr后缀store name看起来像是以gramps命名。在下面的示例中,只有Bill

<root>

<gramps name="Bill">
   <him name="Bill Jr">
      <kid name="Bill III"></kid>
   </him>
</gramps>
<gramps name="Tom">
   <him name="Al">
      <kid name="Al Jr"></kid>
   </him>
</gramps>
<gramps name="Bob">
   <him name="Bob Jr">
      <kid name="Sam"></kid>
   </him>
</gramps>

<store name="Bill's" />
<store name="Tom's" />
<store name="Pete's" />

</root>

1 个答案:

答案 0 :(得分:2)

我认为这会选择你需要的东西......

/*/gramps[../store/@name=concat(@name,"'s")]/him[@name=concat(../@name,' Jr')]

这将选择Bill Jr,因为您说您要选择him

如果您想选择grampsBill),只需将him放入谓词中......

/*/gramps[../store/@name=concat(@name,"'s")][him[@name=concat(../@name,' Jr')]]