【发布时间】:2023-02-01 06:57:21
【问题描述】:
我想将此 XML 文件(API 响应)作为列插入到数据库表中。当响应包含唯一订单 ID 的两个不同项目时,应为两个不同的项目插入订单 ID 列。
这是应该是这样的结果:
row #1 order id: i6tp-pucp-dsrx-1gg7-ikef item_no: 2304
row #2 order id: i6tp-pucp-dsrx-1gg7-ikef item_no: 10914
这是我从 XML 形式的 API 获得的响应:
<?xml version="1.0" encoding="UTF-8" standalone="yes"? ><ns1:result xmlns:ns1="url.xsd">
<ns1:orders>
<ns1:order>
<ns1:code>i6tp-pucp-dsrx-1gg7-ikef</ns1:code>
<ns1:status>CONFIRMED</ns1:status>
<ns1:date>2022-11-30T20:50:36.920</ns1:date>
<ns1:deliveryAddress>
<ns1:firstName>fname</ns1:firstName>
<ns1:lastName>lastname</ns1:lastName>
<ns1:streetname>streetname </ns1:streetname>
<ns1:streetnumber>stno</ns1:streetnumber>
<ns1:town>town</ns1:town>
<ns1:postalCode>PLZ</ns1:postalCode>
<ns1:gender>FEMALE</ns1:gender>
<ns1:deliveryAddressType>address</ns1:deliveryAddressType>
</ns1:deliveryAddress>
<ns1:paymentAddress>
<ns1:firstName>fname</ns1:firstName>
<ns1:lastName>lastname</ns1:lastName>
<ns1:streetname>streetname </ns1:streetname>
<ns1:streetnumber>stno</ns1:streetnumber>
<ns1:town>town</ns1:town>
<ns1:postalCode>PLZ</ns1:postalCode>
<ns1:gender>FEMALE</ns1:gender>
</ns1:paymentAddress>
<ns1:currency>EUR</ns1:currency>
<ns1:entries>
<ns1:entry>
<ns1:sku>2304</ns1:sku>
<ns1:quantity>1</ns1:quantity>
<ns1:basePrice>18.49</ns1:basePrice>
<ns1:totalBasePrice>18.49</ns1:totalBasePrice>
<ns1:merchantSubTotal>18.49</ns1:merchantSubTotal>
<ns1:totalPrice>18.49</ns1:totalPrice>
<ns1:name>ArtNo1</ns1:name>
<ns1:taxClass>at-vat-full</ns1:taxClass>
<ns1:warehouse>001-default-warehouse</ns1:warehouse>
</ns1:entry>
<ns1:entry>
<ns1:sku>10914</ns1:sku>
<ns1:quantity>1</ns1:quantity>
<ns1:basePrice>49.99</ns1:basePrice>
<ns1:totalBasePrice>49.99</ns1:totalBasePrice>
<ns1:merchantSubTotal>49.99</ns1:merchantSubTotal>
<ns1:totalPrice>49.99</ns1:totalPrice>
<ns1:name>Artno2</ns1:name>
<ns1:taxClass>at-vat-full</ns1:taxClass>
<ns1:warehouse>001-default-warehouse</ns1:warehouse>
</ns1:entry>
</ns1:entries>
<ns1:cancelOrders/>
<ns1:returnOrders/>
<ns1:delayOrders/>
<ns1:consignments/>
<ns1:totalBasePrice>68.48</ns1:totalBasePrice>
<ns1:merchantDiscountTotal>0</ns1:merchantDiscountTotal>
<ns1:merchantSubTotal>68.48</ns1:merchantSubTotal>
<ns1:marketplaceDiscountTotal>0</ns1:marketplaceDiscountTotal>
<ns1:subtotal>68.48</ns1:subtotal>
<ns1:deliveryCost>0.0</ns1:deliveryCost>
<ns1:paymentCost>0.0</ns1:paymentCost>
<ns1:totalPrice>68.48</ns1:totalPrice>
<ns1:paymentMode>payment</ns1:paymentMode>
<ns1:deliveryMode>E+2</ns1:deliveryMode>
<ns1:additionalDeliveryOption>E2_1</ns1:additionalDeliveryOption>
<ns1:deliveryConfiguration>Post</ns1:deliveryConfiguration>
<ns1:shipmentDate>2022-12-02T07:00:11.680</ns1:shipmentDate>
<ns1:estimatedDeliveryDate>2022-12-06T07:00:11.680</ns1:estimatedDeliveryDate>
<ns1:avisoData>
<ns1:address>
<ns1:line>line1</ns1:line>
<ns1:line>line2</ns1:line>
<ns1:line>line3</ns1:line>
</ns1:address>
<ns1:phone>0123456789</ns1:phone>
<ns1:email>info@gmail.com</ns1:email>
</ns1:avisoData>
</ns1:order>
</ns1:orders></ns1:result>
【问题讨论】:
-
XML 支持是高度特定于供应商- 所以请添加一个标签来指定您使用的是
mysql、postgresql、sql-server、oracle还是db2- 或者其他完全不同的东西。 -
您好,感谢您编辑我的问题。是的,我正在使用 sql -server
-
您的 XML 包含XML 命名空间前缀
ns1:在你的元素中 - 但你没有向我们展示 XML 命名空间是如何定义的......这是解决方案的关键部分 - 你能把这个添加到你的问题中吗? -
在订购之前它只有 <ns1:result></ns1:result> 我不知道为什么它不允许我编辑我的问题。
标签: sql-server xml xquery