You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用XQuery将XML订单数据转换为表格?求入门指导

用XQuery将XML订单转换为逐行商品表格

针对你的需求,下面是直接可用的XQuery代码,能把XML中的每个客户的每件商品单独生成一行表格数据,完全替代手动处理4000条数据的工作:

生成HTML表格的XQuery代码

declare option output:method "html";

<table border="1">
  <thead>
    <tr>
      <th>客户姓名</th>
      <th>支付方式</th>
      <th>订单号</th>
      <th>商品编码</th>
      <th>单价</th>
      <th>数量</th>
    </tr>
  </thead>
  <tbody>
    {
      for $item in //Item
      let $customer := $item/../../@Name
      let $payment_method := $item/../../@Method
      let $order_number := $item/../@Number
      let $item_code := $item/@Code
      let $price := $item/Price/text()
      let $quantity := substring-after($item/Details/text(), 'Quantity: ')
      return
        <tr>
          <td>{$customer}</td>
          <td>{$payment_method}</td>
          <td>{$order_number}</td>
          <td>{$item_code}</td>
          <td>{$price}</td>
          <td>{$quantity}</td>
        </tr>
    }
  </tbody>
</table>

代码逻辑说明

  • 遍历XML中所有<Item>节点,每个商品对应一行
  • 通过../(父节点)和../../(祖父节点)定位到对应的<Order>和<Customer>,提取订单号、客户姓名、支付方式
  • 直接读取商品的编码、单价,用substring-after从<Details>中提取数量值
  • 输出为带表头的HTML表格,可直接在浏览器打开或复制到表格工具中

如果需要导出为CSV格式(方便导入Excel)

可以用下面的代码生成CSV文本:

declare option output:method "text";

"客户姓名,支付方式,订单号,商品编码,单价,数量"
{
  for $item in //Item
  let $customer := $item/../../@Name
  let $payment_method := $item/../../@Method
  let $order_number := $item/../@Number
  let $item_code := $item/@Code
  let $price := $item/Price/text()
  let $quantity := substring-after($item/Details/text(), 'Quantity: ')
  return
    concat('"', $customer, '","', $payment_method, '","', $order_number, '","', $item_code, '","', $price, '","', $quantity, '"', '&#10;')
}

使用方法

找一款支持XQuery的工具(比如Saxon、BaseX),将你的XML文件作为输入,运行上述代码即可得到需要的表格数据。

内容的提问来源于stack exchange,提问作者Preston

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 02:50:26