在Xpath表达式中使用count

时间:2012-12-10 10:39:23

标签: xpath

如果我有这样的XML :(只是做一个例子)

<restaurant>
    <tables>
            <table id=1 />
            <table id=2 />
            <table id=3 />
    </tables>

我必须计算表的数量,正确的Xpath表达式是:

restaurant/tables/count(table)

count(restaurant/tables/table)

谢谢

2 个答案:

答案 0 :(得分:3)

查看this Microsoft XPath count() tutorial

count(/restaurant/tables/table)

将计算上述路径中的表格元素。

答案 1 :(得分:0)

restaurant/tables/count(table)

此表达式仅在XPath 2.0中合法。它生成一系列数字,如果XML文档有多个restorantrestorant/tables元素,则此序列的长度可能大于1。

count(restaurant/tables/table)

此表达式在XPath 1.0和XPath 2.0中均有效。它产生一个数字。

因此,一般来说,两个表达式是不同的,只有第二个表达式在XPath 1.0和XPath 2.0中是合法的,这些表达式可能会产生不同的结果,具体取决于它们被评估的XML文档。

但是在指定的XML文档中,这两个表达式(在XPath 2.0中计算时)会产生相同的结果:

3