捕获属性id并使用它在XPath中搜索

时间:2017-02-09 20:43:02

标签: xml xpath

我有以下XML。

<root>
  <items>
     <item attr="value1" id="id1"> ... </item>
     <item attr="value2" id="id2"> ... </item>
  </items>
  <offers>
     <offer id="id1">
       <elem> someText </elem>
     </offer>
     <offer id="id2">
       <elem> someText </elem>
     </offer>
  </offers>
</root>

有没有办法选择 - 使用XPath - elem的{​​{1}}代码item

基本上,我需要知道是否有办法捕获 attr="value1"的{​​{1}}值并使用它来查找相应的id

我知道我可以简单地使用item。但我在运行时构建此XPath,我只知道offer的值。

1 个答案:

答案 0 :(得分:2)

我假设您正在寻找属于elem的{​​{1}}的孩子,其属性offerid代码<{1}}的属性id匹配/ p>

以下xpath应该为您提供:

item

它会查找其//offers/offer[@id=(//item[@attr="value1"]/@id)]/elem个属性与offer个具有相同属性值的标记匹配的id代码,然后返回其item代码。

如果你想要里面的文字,只需在xpath末尾添加elem,如:

text()