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

Откуда: Киев
Сообщений: 438
Добрый день,

подскажите, пожалуйста, как правильно извлечь из примера ниже значения permissionName? Всё бы и так работало, если бы не имеющееся в теге session значение xmlns="https://mysite.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema":
declare @session xml = '<session xmlns="https://mysite.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <permissions>
    <permission>
      <permissionName>CAName::filial</permissionName>
      <permissionValue>&lt;permission&gt;&lt;items/&gt;&lt;/permission&gt;</permissionValue>
    </permission>
    <permission>
      <permissionName>CAFName::Report</permissionName>
      <permissionValue>&lt;permission&gt;&lt;items/&gt;&lt;/permission&gt;</permissionValue>
    </permission>
   </permissions>
</session>'

select @session

select x.value('permissionName[1]', 'nvarchar(max)') 
from @session.nodes('//permission') as T(x)
8 ноя 13, 10:04    [15095512]     Ответить | Цитировать Сообщить модератору
 Re: вопрос по парсингу xml  [new]
qwerty112
Guest
Leax,

;with xmlnamespaces (default 'https://mysite.com')
select x.value('text()[1]', 'nvarchar(max)') 
from @session.nodes('//permission/permissionName') as T(x)
8 ноя 13, 10:18    [15095583]     Ответить | Цитировать Сообщить модератору
 Re: вопрос по парсингу xml  [new]
qwerty112
Guest
или так
select x.value('text()[1]', 'nvarchar(max)') 
from @session.nodes('//*:permissionName') as T(x)
8 ноя 13, 10:22    [15095614]     Ответить | Цитировать Сообщить модератору
 Re: вопрос по парсингу xml  [new]
Leax
Member

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

Работают оба варианта! Спасибо большое!
8 ноя 13, 17:01    [15098826]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить