【问题标题】:Need to generate a table from XML file using Xquery - not sure where to start需要使用 Xquery 从 XML 文件生成表格 - 不确定从哪里开始
【发布时间】:2022-11-30 10:15:27
【问题描述】:

我将订单数据存储在 XML 中,如下所示,我被要求将其转换为表格。由于这不是我的工作描述的一部分,而且我没有相关资格,所以我要么寻求外部帮助,要么为大约 4000 名客户手动完成。

<Customer Name="John Smith" Method="Credit">

<Order Number="1">

<Item Code="INK001">
<Price>24</Price>
<Details>Quantity: 12</Details>
</Item>

</Order>

<Order Number="2">

<Item Code="PAPER001">
<Price>12</Price>
<Details>Quantity: 240</Details>
</Item>

<Item Code="INK002">
<Price>48</Price>
<Details>Quantity: 24</Details>
</Item>

</Order>

</Customer>

<Customer Name="Jane Doe" Method="Cash">

<Order Number="1">

<Item Code="INK001">
<Price>24</Price>
<Details>Quantity: 12</Details>
</Item>

</Order>

<Order Number="2">

<Item Code="PAPER001">
<Price>12</Price>
<Details>Quantity: 240</Details>
</Item>

<Item Code="INK002">
<Price>48</Price>
<Details>Quantity: 24</Details>
</Item>

</Order>

</Customer>

希望最终得到一张按照所附屏幕截图显示的表格,其中每个客户的每个项目都有自己的行。 据我所知,显然 xQuery 是可行的方法,尽管它仍然没有让我知道从哪里开始。如果有人比我更有经验可以帮助解决这个问题,我将不胜感激。

【问题讨论】:

  • 好吧,网上肯定有 XQuery 和 XSLT 教程,对于 XSLT,请参见例如cranesoftwrights.github.io/books/ptux/index.htm
  • 据您所知,我想要的结果是否可能?还是我必须走另一条路?
  • 目前尚不清楚您想要的结果应该具有什么格式,但是将输入中的每个 Item 映射到(某些 HTML 或 XSL-FO 或 CSV)中的表行,输出当然可以使用 XSLT 或 XQuery。
  • 提到的表是否应该是数据库表?
  • Excel 表格或任何其他人类可读和可编辑的内容是所需的结果@YitzhakKhabinsky

标签: xml csv xsd xquery


【解决方案1】:

因此,如果您谈论的是 Excel 等工具中的可编辑表(而不是 SQL 数据库表),那么只要安装了 Excel,实际上就不需要 XQuery 编程或特殊工具。

不过,您确实需要将数据格式化为适当的 XML 文档(因此只有一个根元素)- 对于按原样发布的数据,您需要将多个 &lt;Customer /&gt; 元素包装在一个根元素中,例如 &lt;Customers /&gt;

目前,在您的 XML 中,您将其作为:

<Customer Name="John Smith" Method="Credit"></Customer>
<Customer Name="Jane Doe" Method="Cash"></Customer>
<!-- Left out the contents of each Customer for brevity -->

更改它,使其成为具有根文档元素和 XML 处理指令的正确 XML 文档:

<?xml version="1.0" encoding="UTF-8"?>
<Customers>
    <Customer Name="John Smith" Method="Credit"></Customer>
    <Customer Name="Jane Doe" Method="Cash"></Customer>
</Customers>
<!-- Left out the contents of each Customer for brevity -->

一旦它是一个有效的 XML 文档,直接在 Excel 中打开它,它会提示您:

选择第一个选项。

然后它将显示此消息:

点击确定,然后您的可编辑数据表就会显示出来!

唯一的问题是,如果有更多数据未显示,并且 Excel 未以您期望的方式显示表格,您可能必须获取 XML 的架构(如果存在),或者自己制作一个,至于映射复杂的 XML,如果 Excel 具有架构 (XSD),它会更容易。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-03
    • 2010-12-10
    • 1970-01-01
    • 2016-03-02
    • 1970-01-01
    • 2012-12-03
    相关资源
    最近更新 更多