xquery / xpath-如何获取特定类型的后代节点数

时间:2012-09-03 16:44:30

标签: xpath xquery

查看下面的示例XML -

<div id="main">
    <div id="1">
        Some random text
    </div>
    <div id="2">
        Some random text
    </div>
    <div id="3">
        Some random text
    </div>
    <p> Some more random text</p>
    <div id="4">
        Some random text
    </div>
</div>

现在,如何使用Xquery找出主div中的div数?以及如何在XPath中执行此操作?

2 个答案:

答案 0 :(得分:3)

您可以使用以下XPath:

count(div[@id="main"]/div)

函数count执行计数,主divid选中。

答案 1 :(得分:2)

下面的XPath表达式可以在XPath和XQuery中使用。就是这样,因为XPath(2.0)是XQuery的合适子集。

使用

count(/*//div)

如果“主div”不是XML文档的顶部元素,并且这是唯一div id属性的字符串值为"main"的{​​{1}},请使用:< / p>

count((//div[@id='main'])[1]//div)

如果确保“主要div”的div子女没有div后代,请使用:

count((//div[@id='main'])[1]/div)

请注意:XPath伪运算符//效率非常低 - 这就是为什么每当XML文档的结构静态知道时,总是尽量避免使用它并且可以使用特定路径。