实战案例

XQuery 教程 · 第 8 章 · 6 次浏览

综合实战:从 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>