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

Откуда:
Сообщений: 5
Подскажите пожалуйста как правильно написать SELECT, чтобы их такого XML

DECLARE @source XML =
'<?xml version="1.0" encoding="utf-8"?>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
<A>1</A>
</Report>'

получить значение тэга A.
26 май 19, 00:20    [21893994]     Ответить | Цитировать Сообщить модератору
 Re: XML с xmlns  [new]
Ennor Tiegael
Member

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

Придется убрать processing instruction:

DECLARE @source XML = N'<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
<A>1</A>
</Report>';

with xmlnamespaces (default 'http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition')
select @source.value('/Report[1]/A[1]/text()[1]', 'int');

Вроде в 2019 должно заработать без изменений, но он пока не вышел, хз как там будет.
26 май 19, 09:36    [21894026]     Ответить | Цитировать Сообщить модератору
 Re: XML с xmlns  [new]
sps777
Member

Откуда:
Сообщений: 5
[Ennor Tiegael],
Спасибо огромное. Еще последнюю вещь которую мне нужно сделать - инсерт из переменной, делаю так (на основе вашей подсказки) :

SET @source.modify('declare namespace default="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition";
insert sql:variable("@ins_xml") into (/default:Report/default:Body/default:ReportItems)[1]')

Вставка происходит, но присутствует ненужный атрибут xmlns="".

<Textbox xmlns="" Name="Textbox21">

Можно ли делать вставку без появления этого xmlns="" ?
26 май 19, 10:40    [21894034]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить