[英]xpath - get parent Id by children with condition
我有看起来像这样的XML:
<doc>
<H Id="4732894">
<M Ind="aa">
<A Id="G">A</A>
<A Id="S">M</A>
</M>
</H>
<H Id="4326789">
<M Ind="aa">
<A Id="G">B</A>
<A Id="S">F</A>
</M>
<M Ind="ab">
<A Id="G">B</A>
<A Id="S">M</A>
</M>
<M Ind="ac">
<A Id="G">3</A>
<A Id="S">F</A>
</M>
<M Ind="ad">
<A Id="G">2</A>
<A Id="S">F</A>
</M>
</H>
</doc>
我需要获取所有具有M
元素的H
元素的Id
,其中M
元素具有A
元素,其中Id=G
= B
或C
在文本中,并且Id=S
= F
因此,在此示例中,输出应仅为4326789
,因为此H
元素中的第一个M
元素满足条件。
这是我尝试过的:
"//H/M/A[@Id='G'][contains(text(),'B C']/../../@Id"
并且它已经引发了一个错误(所以我什至没有尝试为@Id='S'
添加and
)。
任何帮助将不胜感激!
尝试在XPath下面获取所需的输出:
//H[M[A[@Id="G" and .="B"] and A[@Id="S" and .="F"]]]/@id
输出:
4326789
请注意, .="F"
搜索文本内容等于 "F"
A
节点。如果需要包含 "F"
节点,则可以使用A[@Id="S" and contains(., "F")]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.