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

Откуда: Харків
Сообщений: 1233
Данные в формате
<Properties>
  <Name>Вася</Name>
  <TemplateWidth>728</TemplateWidth>
  <TemplateHeight>600</TemplateHeight>
</Properties>

Запрос
SELECT MyData.value('(@TemplateHeight)[1]', 'INT') AS [Id] 
FROM  MyTable
CROSS APPLY MyTable.XmlData.nodes('/Properties') TempXML (MyData)   
возвращает NULLы вместо значений TemplateHeight.
Что не так?
1 авг 11, 12:58    [11052453]     Ответить | Цитировать Сообщить модератору
 Re: XML  [new]
Andrey Sribnyak
Member

Откуда: Киев
Сообщений: 600
igor2222,

У вас разделитель строк в xml пропущен

declare @x as xml = '
<Properties>
  <Name>Вася</Name>
  <TemplateWidth>728</TemplateWidth>
  <TemplateHeight>600</TemplateHeight>
</Properties>
'

select n.value('Name[1]','varchar(50)') Name,
n.value('TemplateWidth[1]','int') TemplateWidth,
n.value('TemplateHeight[1]','int') TemplateHeight
from @x.nodes('/*') t(n)
1 авг 11, 13:04    [11052487]     Ответить | Цитировать Сообщить модератору
 Re: XML  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Так не подойдет
У меня строк с <Properties> немного. Я не хочу парсить теги, которые не внутри <Properties>.
Всё начинает тормозить.
1 авг 11, 13:11    [11052549]     Ответить | Цитировать Сообщить модератору
 Re: XML  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
А, сорри! Дошло. Просто собаку убрать.
Сенкс.
1 авг 11, 13:12    [11052559]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить