Узлы извлечения XML для SQL Server - PullRequest
1 голос
/ 28 сентября 2010

Я использую 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

Примечание: я бы хотел использовать select по узлам, например, следующее возвращает мне значение первого атрибута:
select v.value ('@_ attribA [1]', 'nvarchar (4) ') из @ doc.nodes (' / ELEMENT_A / CHILD_A ') x (v)

Очень признателен, спасибо.

1 Ответ

0 голосов
/ 28 мая 2011

Надеюсь, вам еще не поздно. Я видел твой вопрос только сегодня

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)
...