xpath - 根据条件 children 获取 parent Id
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>
我需要取所有 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")]
我有 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>
我需要取所有 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")]