我有以下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
的值。
答案 0 :(得分:2)
我假设您正在寻找属于elem
的{{1}}的孩子,其属性offer
与id
代码<{1}}的属性id
匹配/ p>
以下xpath应该为您提供:
item
它会查找其//offers/offer[@id=(//item[@attr="value1"]/@id)]/elem
个属性与offer
个具有相同属性值的标记匹配的id
代码,然后返回其item
代码。
如果你想要里面的文字,只需在xpath末尾添加elem
,如:
text()