Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 XML parsing  [new]
xmlparser0123
Guest
Помогите пожалуйста распарсить xml

Есть xml вида:
DECLARE
  @xml xml = '<Result>
  <Source Name="123">
    <Index Begin="1" End="3"></Index>
    <Index Begin="2" End="9"></Index>
  </Source>
  <Source Name="2">
    <Index Begin="9" End="13"></Index>
    <Index Begin="2" End="11"></Index>
  </Source>
  </Result>'


Как мне получить атрибуты из Source и Index?
Отдельно получить могу:
SELECT 
   [Name] = T.P.value('@Name', 'nvarchar(100)')
FROM @xml.nodes('/Result/Source') T(P)  
  
SELECT 
   [Begin] = T.P.value('@Begin', 'nvarchar(100)'),
   [End]   = T.P.value('@End', 'nvarchaR(100)')
FROM @xml.nodes('/Result/Source/Index') T(P) 
30 июн 17, 11:19    [20602161]     Ответить | Цитировать Сообщить модератору
 Re: XML parsing  [new]
Serп
Guest
xmlparser0123,

select S.value('@Name','int') as SourceName,I.value('@Begin','int') as IndexBegin,I.value('@End','int') as IndexEnd from @xml.nodes('/Result/Source') col(S)
    cross apply S.nodes('Index') tab(I)
30 июн 17, 11:32    [20602234]     Ответить | Цитировать Сообщить модератору
 Re: XML parsing  [new]
dies irae
Member

Откуда:
Сообщений: 78
  SELECT 
   T.P.value('../@Name', 'nvarchar(100)') as SourceName
   ,T.P.value('@Begin', 'nvarchar(100)') as IndexBegin
   ,T.P.value('@End', 'nvarchar(100)') as IndexEnd
FROM @xml.nodes('/Result/Source/Index') T(P)  
30 июн 17, 13:35    [20602762]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить