我有以下XML:
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>J-Y</given-names>
</name>
</person-group>
<person-group person-group-type="author">
<name>
<surname>Cisse</surname>
<given-names>F</given-names>
</name>
</person-group>
<person-group person-group-type="author">
<name>
<surname>Dahou</surname>
<given-names>T</given-names>
</name>
<name>
<surname>Foucher</surname>
<given-names>V</given-names>
</name>
</person-group>
我正在尝试设计一种XPath查询,该查询仅在元素具有多个元素时才返回 。
在我所学的范围内,我已经尝试了一切,并且在过去的几个小时中,还通过XPath和XQuery文档进行了梳理。我读过的书都没有告诉我是否可以根据子节点的数量来过滤节点。
谢谢。
答案 0 :(得分:4)
使用以下XPath表达式:
//person-group[count(name) > 1]
它选择所有person-group
子元素多的所有name
元素。
如果要查询所有子元素的数量,可以将上述查询推广到
//person-group[count(*) > 1]