XML Shredding包含属性和内部元素值

时间:2012-06-08 19:10:27

标签: sql xml xml-parsing xquery shred

考虑以下XML片段:

<Orders>
  <Totals>
     <Total Type="Merchandise">56.89</Total>
     <Total Type="Shipping">10.75</Total>
     <Total Type="Tax">0.00</Total>
     <Total Type="Order">67.64</Total>
     <Total Type="Discount">0.00</Total>
     <Total Type="ServiceFee">0.00</Total>
     <Total Type="ServiceFeeDiscount">0.00</Total>
  </Totals>  
</Orders>

我想(使用SQL内置的XQuery / XPath支持),将Type属性和每个Total的值分解为自己的列,并将每个元素的内部值分解为自己的列,如下所示: / p>

    Type           Amount  
Merchandise        56.89  
  Shipping         10.75  
     Tax            0.00  

我已经使用了所有我知道的XQuery和XPath,但无济于事。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

哇,不知道为什么我以前想不到这个。请参阅以下代码:

select T.data.value('@Type', 'varchar(20)'),
   T.data.value('.', 'varchar(20)')
from @data.nodes('Orders/Totals/Total') T(data)