2010-09-28 87 views
1

我正在使用SQL Server 2005抽取XML数据。我将不胜感激一些帮助提取以下XML片段?SQL Server 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

注意:我想使用select by nodes例如以下是我的第一个属性值:
select @ v.value('@_ attribA [1]','nvarchar(4)') from @ doc.nodes('/ ELEMENT_A/CHILD_A')x( v)

非常感谢,谢谢。

+0

你错过了样本中的标签 – 2010-09-28 16:33:06

回答

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)