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

Откуда:
Сообщений: 2
create table test (xmldata xml)
insert into test values ('<a xmlns="https://xyz.xyz"><b xmlns="">1</b></a>')

with xmlnamespaces (default 'https://xyz.xyz')
select t.x.value('b[1]', 'int')
  from test
  cross apply xmldata.nodes('a') t(x)

Возвращает NULL. Если убрать пустой namespace, то возвращает как положено. Как победить?
http://sqlfiddle.com/#!18/cd739/2
10 фев 20, 20:13    [22077168]     Ответить | Цитировать Сообщить модератору
 Re: Пустой неймспейс  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1150
cv880,

не применяйте дефолтный namespaces тогда, эта директива применяет его к каждому элементу.


with xmlnamespaces ('https://xyz.xyz' as xs)
select t.x.value('b[1]', 'int')
  from test
  cross apply xmldata.nodes('/xs:a') t(x);


Сообщение было отредактировано: 10 фев 20, 20:55
10 фев 20, 20:53    [22077187]     Ответить | Цитировать Сообщить модератору
 Re: Пустой неймспейс  [new]
cv880
Member

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

Спасибо.
10 фев 20, 21:53    [22077223]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить