我有以下XML文件:
<parent>
<child status = 'pass'></child>
<child status = 'pass'></child>
</parent>
<child status = 'pass'></child>
<child status = 'fail'></child>
<parent>
<child status = 'pass'></child>
<child status = 'pass'></child>
</parent>
<parent>
<child>
<child status = 'pass'></child>
<child status = 'fail'></child>
</child>
</parent>
我需要根据孩子的身份来计算父母的数量。例如,如果所有孩子都通过了#39;状态,父母的状态必须通过,但如果其中一个孩子处于失败状态,则整体状态必须“失败”。我怎么能通过XPath做到这一点?
请注意,某些父级可以包含具有自己子级的子级,因此XPath必须是通用的。有什么想法吗?
答案 0 :(得分:1)
首先,将parent
元素包装在公共根元素中,否则XML格式不正确。
然后,您可以使用以下XPath来计算所有parent
元素,而后代child
元素没有fail
@status
:
count(//parent[not(.//child/@status = 'fail')])