SQL Server XML提取节点

时间:2010-09-28 16:24:38

标签: xml database sql-server-2005 openxml

我正在使用SQL Server 2005来提取XML数据。我将不胜感激一些帮助提取以下XML片段?

<ELEMENT_A>
    <CHILD_A _attribA="ABC">
       <CHILD_B Type="1">
          <CHILD_C>
             <CHILD_D Type="1" Date="2010-08-31">
                <CHILD_E _attribB="M0">
                   <CHILD_F>-0.32295</CHILD_F>
                </CHILD_E>
            </CHILD_D>
         </CHILD_C>
     </CHILD_B>
   </CHILD_A>
</ELEMENT_A>
  

如何以下列表格格式获取数据?   ELEMENT_A | _attribA | CHILD_A | CHILD_B | CHILD_C | CHILD_D | CHILD_E | CHILD_F

     

注意:我想使用节点选择,例如以下为我获取第一个属性的值:
  选择           v.value( '@_ attribA [1]', 'nvarchar的(4)')       来自@ doc.nodes('/ ELEMENT_A / CHILD_A')x(v)

非常感谢,谢谢。

1 个答案:

答案 0 :(得分:0)

希望这对你来说还不算太晚。我今天才看到你的问题

select 
v.value('../../../../../@_attribA','nvarchar(4)')  as _attribA
,v.value('../../@Date','nvarchar(12)') as [Date]
,v.value('../@_attribB','nvarchar(2)') as _attribB
,v.value('.','float') as CHILD_F
,v.query('../../../../..') as CHILD_A

from @doc.nodes('/ELEMENT_A/CHILD_A/CHILD_B/CHILD_C/CHILD_D/CHILD_E/CHILD_F') x(v)