CSV 序列化所需的 XML 描述于CSV模块 http://docs.basex.org/wiki/CSV_Module文档。 BaseX 文档中的示例:
<csv>
<record>
<Name>Huber</Name>
<First_Name>Sepp</First_Name>
<Address>Hauptstraße 13</Address>
<City>93547 Hintertupfing</City>
</record>
</csv>
换句话说,一个<csv/>
元素包装了所有数据,每个记录由<csv/>
元素和最后的列存储为具有文本节点子节点的元素。
查看当前的输出(通过删除序列化选项),返回以下内容:
<csv>
<Desc descripcion="CONSUMO"/>
<Cantidad cantidad="1.00"/>
<Valor valorUnitario="156.8966"/>
<Fecha FechaTimbrado="2014-07-01T08:15:15"/>
<Lugar codigoPostal="39690"/>
<UUID UUID="8a4f1be7-bdcb-4b22-b144-b3e41dd92e69"/>
</csv>
您在两个方面不符合要求:
- no
<record/>
元素
- 值存储为属性,而不是文本节点
如果您使用如下查询更正这两个问题:
for $x in //cfdi:Comprobante,
$y in $x//cfdi:Conceptos/cfdi:Concepto,
$z in $x//cfdi:Complemento/tfd:TimbreFiscalDigital,
$w in $x//cfdi:ExpedidoEn
return
<csv><record>
<Desc>{$y/@descripcion/data()}</Desc>
<Cantidad>{$y/@cantidad/data()}</Cantidad>
<Valor>{$y/@valorUnitario/data()}</Valor>
<Fecha>{$z/@FechaTimbrado/data()}</Fecha>
<Lugar>{$w/@codigoPostal/data()}</Lugar>
<UUID>{$z/@UUID/data()}</UUID></record>
</csv>
您将获得预期的 CSV 输出:
Desc,Cantidad,Valor,Fecha,Lugar,UUID
CONSUMO,1.00,156.8966,2014-07-01T08:15:15,39690,8a4f1be7-bdcb-4b22-b144-b3e41dd92e69