实战案例
综合实战:从 XML 订单生成销售统计报告。数据聚合 + 排序 + 生成新 XML,这是 XQuery 最典型的应用。
功能
读取订单 XML → 按商品分类统计销售额 → 生成报表 XML。用 group by 分组(XQuery 3.0 特性)。
代码示例
(: 订单 XML :)
(: <orders>
<order><item>苹果</item><qty>2</qty><price>5.5</price></order>
<order><item>香蕉</item><qty>5</qty><price>3.2</price></order>
<order><item>苹果</item><qty>1</qty><price>5.5</price></order>
</orders> :)
(: 按商品汇总销售额 :)
<sales_report>
{
for $order in doc("orders.xml")//order
let $item := $order/item/text()
let $amount := $order/qty * $order/price
group by $item
order by sum($amount) descending
return
<item name="{ $item }">
<total>{ sum($amount) }</total>
<count>{ count($order) }</count>
</item>
}
<grand_total>{ sum(doc("orders.xml")//order/qty * doc("orders.xml")//order/price) }</grand_total>
</sales_report>