[英]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.