3 xquery
我有以下代码,并且我拥有的saxon jar文件无法读取xquery 3.0。
for $item in doc("order.xml")//item
group by $d := $item/@dept
order by $d
return
<department totalQuantity="{sum($item/@quantity)}"
code="{$d}"
numItems="{count($item)}"/>
Run Code Online (Sandbox Code Playgroud)
输出显示部门,totalQuantity和项目数。它应该按代码分组,上面的代码无法编译。
我希望有一种方法可以与xquery 1.0一起使用
通常,等同于XQuery 3.0的“分组依据”增强的FLWOR表达式的XQuery 1.0等效项依赖于该fn:distinct-values()函数来查找用于将各项组合在一起的不同键。找到键之后,您可以简单地使用XQuery 1.0 FLWOR表达式遍历键,并选择具有匹配键的项。这是与查询等效的XQuery 1.0:
let $items := doc("order.xml")//item
let $depts := distinct-values($items/@dept)
for $dept in $depts
let $dept-items := $items[@dept eq $dept]
order by $dept
return
<department totalQuantity="{sum($dept-items/@quantity)}"
code="{$dept}"
numItems="{count($dept-items)}"/>
Run Code Online (Sandbox Code Playgroud)