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

Откуда:
Сообщений: 2
Добрый день. Прошу помочь. Имею такие данные. В них указано пространство имен по умолчанию.

declare @m_file XML ='<ChargeInfo>
<Charge Id="123" xmlns ="http:\www.rus.ru">
</Charge>
</ChargeInfo>'

declare @m_id varchar(10);
И не могу извлечь отсюда (например такой конструкцией) , значение Id.

select @m_id = n.value('.','varchar(10)')
from @m_file.nodes('/ChargeInfo/Charge/@Id[1]') t(n)

Объявление перед select пространства имен , например так

;
WITH XMLNAMESPACES ( default '"http:\www.rus.ru"' )
не помогает.
(Если укажу какое либо пространство имен явно Id извлечь уже можно.
Что делаю не так?
13 мар 16, 12:01    [18925107]     Ответить | Цитировать Сообщить модератору
 Re: Разбор XML  [new]
Glory
Member

Откуда:
Сообщений: 104760
разве ваш пример XML-я является валидиным XML-ем ?
13 мар 16, 12:13    [18925116]     Ответить | Цитировать Сообщить модератору
 Re: Разбор XML  [new]
invm
Member

Откуда: Москва
Сообщений: 9413
with xmlnamespaces('http:\www.rus.ru' as ns1)
select
 t.n.value('@Id', 'int')
from
 @m_file.nodes('/ChargeInfo/ns1:Charge') t(n);
13 мар 16, 12:36    [18925136]     Ответить | Цитировать Сообщить модератору
 Re: Разбор XML  [new]
TrushenkoV
Member

Откуда:
Сообщений: 2
invm,

Спасибо!!!
13 мар 16, 15:20    [18925381]     Ответить | Цитировать Сообщить модератору
 Re: Разбор XML  [new]
Oleksii Kovalov
Member

Откуда:
Сообщений: 100
select n.value('.','varchar(10)')
from @m_file.nodes('/ChargeInfo/*:Charge/@Id[1]') t(n)
14 мар 16, 14:25    [18928349]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить