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

Откуда: Белгород
Сообщений: 458
XML следующего вида:
  <?xml version="1.0" ?> 
 <ArrayOf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="1.0.0.0" xmlns="MyType">
 <MyType>
  <ID>1</ID> 
  <Name>Тест1</Name> 
  </MyType>
 <MyType>
  <ID>2</ID> 
  <Name>Тест2</Name> 
  </MyType>
 <MyType>
  <ID>3</ID> 
  <Name>Тест3</Name> 
  </MyType>
  </ArrayOf>


Хранится в файле: "D:\data.xml"

Пишу следующий код:

declare @X xml, @idoc int
set @X = (select * from openrowset(bulk 'D:\data.xml', single_blob) as x)
--тут даже выводит считанную XML из файла
print cast(@X as nvarchar(max))

--и всё, не хочет доставать данные (((
SELECT 
T.[element].value('@ID','nvarchar(max)') AS ID
,T.[element].value('@Name','nvarchar(max)') AS [Value]
FROM @X.nodes('/ArrayOf/MyType') AS T(element)


Подскажите пожалуйста, что не так делаю ?
30 июл 12, 18:18    [12936531]     Ответить | Цитировать Сообщить модератору
 Re: Как осуществить выборку из XML ?  [new]
invm
Member

Откуда: Москва
Сообщений: 9845
with xmlnamespaces('MyType' as mt)
SELECT 
T.[element].value('mt:ID[1]','nvarchar(max)') AS ID
,T.[element].value('mt:Name[1]','nvarchar(max)') AS [Value]
FROM @X.nodes('/mt:ArrayOf/mt:MyType') AS T(element)
30 июл 12, 18:31    [12936603]     Ответить | Цитировать Сообщить модератору
 Re: Как осуществить выборку из XML ?  [new]
Алексей Кр
Member

Откуда: Белгород
Сообщений: 458
СПАСИБО ВАМ ОГРОМНЕЙШЕЕ!!!!
30 июл 12, 18:36    [12936628]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить