Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 构造一个XPath查询,根据子节点的数量过滤节点?_Xml_Xpath_Xquery - Fatal编程技术网

Xml 构造一个XPath查询,根据子节点的数量过滤节点?

Xml 构造一个XPath查询,根据子节点的数量过滤节点?,xml,xpath,xquery,Xml,Xpath,Xquery,我有以下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="autho

我有以下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>

陈
J-Y
西塞
F
达胡
T
富歇
v
我正在尝试设计一个XPath查询,它只在元素有多个元素时返回元素

在我所知的范围内,我已经尝试了一切,在过去的几个小时里,我还梳理了XPath和XQuery文档。我没有读到任何东西告诉我是否可以根据节点子节点的数量筛选节点


谢谢。

使用以下XPath表达式:

//person-group[count(name) > 1]
它选择具有多个子
名称的所有
人员组
元素


如果要查询所有元素子元素的数量,可以将上述查询概括为

//person-group[count(*) > 1]

也许不太明显,您还可以执行
//person group[name[2]]
操作,选择所有
person group
元素,这些元素都有第二个子元素。谢谢!您知道有哪些文档可以让我了解一些XPath更高级的运算符吗?XPath的当前版本是3.1。你可以找到一个好的。顺便说一句,答案只包括XPath-1.0特性。