使用序列上的fn:count函数进行xquery

使用序列上的fn:count函数进行xquery,xquery,Xquery,我正在更新一个文件,该文件从搜索返回一系列地物元素。count函数可以很好地计算返回的项目总数: let $total-count := fn:count($result) 但是,我还需要计算包含视频元素以及包含图形元素的图形元素的数量,但这些语句不起作用: let $vid-count := fn:count($result//video) let $graph-count := fn:count($result//graphic) 有什么想法吗?您正在计算所有$result元素中包含的视

我正在更新一个文件,该文件从搜索返回一系列地物元素。count函数可以很好地计算返回的项目总数:

let $total-count := fn:count($result)
但是,我还需要计算包含视频元素以及包含图形元素的图形元素的数量,但这些语句不起作用:

let $vid-count := fn:count($result//video)
let $graph-count := fn:count($result//graphic)
有什么想法吗?

您正在计算所有
$result
元素中包含的视频(各自的图形)元素。如果要计算包含另一个元素的元素,请使用谓词而不是轴步骤

let $vid-count := fn:count($result[.//video])
let $graph-count := fn:count($result[.//graphic])

好吧,我认为这可能涉及使用谓词,但无法预测它将是什么。上述声明也不起作用。似乎他们应该这样做。给出一些小的、但易于理解的示例输入和预期输出。尤其要确保包含所有名称空间声明(如果有),以防您不确定在例如上发布更大的示例文档。