问题描述
我有一个非常简单的XML文件,我想将其转换为表。
XML结构:
<ROOT>
<ID>ID-20</ID> (ONLY 1 ID per file,this will be the first column)
<ProductList>
<ProductID>A-1235</ProductID>
<Quantity>100</Quantity>
<Price>300</Price>
<ProductID>A-12356</ProductID>
<Quantity>110</Quantity>
<Price>310</Price>
<ProductID>A-123567</ProductID>
<Quantity>120</Quantity>
<Price>320</Price>
...
</ProductList>
</ROOT>
第二列是ProductID,第三数量,第四价格。
我可以使每个ProductID与第一列分别显示在单独的行中,但是我不能在ProductID旁边显示相应的数量和价格。
到目前为止,我的代码:
SELECT T.C.value('../../../ID[1]','nvarchar(20)') AS ID,C.value('.','nvarchar(20)') AS ProductID,C2.value('(text())[1]','nvarchar(20)') AS Quantity--,COMMENTED PRICE OUT FOR NOW
--C2.value('(../Price/text())[1]','nvarchar(20)') AS Price
FROM @Xml.nodes('/ROOT/ProductList/ProductID') AS T(C)
cross apply C.nodes('../Quantity') AS T2(C2)
“交叉应用”部分使每个数量出现在每个ProductID旁边。 我无法找出对齐这些列的正确方法。
我在这里发现了一些类似的问题,但是由于XML结构有些不同,我无法为我的情况解决这个问题。
有人可以帮我吗? 我会非常感激:)
问题已解决! 非常感谢所有贡献者!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)