powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос по xml
7 сообщений из 7, страница 1 из 1
Вопрос по xml
    #40039155
BredSpit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток
Предположим упрощенно
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
declare @val varchar(10)='' ,@x xml

set @x = (

select @val as test
for xml path('mainTag'),elements,type

)
select @x
Понятно что на выходе получаем 
<mainTag>
  <test></test>
</mainTag>


Собственно вопрос - а можно ли сделать каким то образом так чтобы при незаполненном значении @val получилось бы так
Код: sql
1.
2.
3.
<mainTag>
  <test/>
</mainTag>


То есть обойтись без присутствия открывающего и закрывающего тэга при отсутствии значения @val обойтись только одним тэгом?
Вопрос конечно не корректный т к отсутствие значение это NULL и тогда <test></test> вообще не сформируется
Подскажите плз
Спасибо
...
Рейтинг: 0 / 0
Вопрос по xml
    #40039160
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BredSpit
Вопрос конечно не корректный т к отсутствие значение это NULL и тогда <test></test> вообще не сформируется
с elements XSINIL - сформируется, но это всё равно не совсем то, что нужно ...

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
declare @val varchar(10)=null ,@x xml

set @x = (

select @val as test
for xml path('mainTag'),elements XSINIL,type 

)
select @x



Код: xml
1.
2.
3.
<mainTag xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <test xsi:nil="true" />
</mainTag>
...
Рейтинг: 0 / 0
Вопрос по xml
    #40039200
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BredSpit
То есть обойтись без присутствия открывающего и закрывающего тэга при отсутствии значения @val обойтись только одним тэгом?

Зачем? С т.з. DOM-модели <test /> и <test></test> эквивалентны.
...
Рейтинг: 0 / 0
Вопрос по xml
    #40039212
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
court
BredSpit
Вопрос конечно не корректный т к отсутствие значение это NULL и тогда <test></test> вообще не сформируется
с elements XSINIL - сформируется, но это всё равно не совсем то, что нужно ...

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
declare @val varchar(10)=null ,@x xml

set @x = (

select @val as test
for xml path('mainTag'),elements XSINIL,type 

)
select @x



Код: xml
1.
2.
3.
<mainTag xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <test xsi:nil="true" />
</mainTag>


Понимаю, дурдом, но по другому - никак...
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
declare @val varchar(10)=null, @x nvarchar(max)

set @x = Replace(Replace(
(
select @val as test
for xml path('mainTag'), root('root'), elements XSINIL 
), ' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"', ''), ' xsi:nil="true"', '')

select @x
...
Рейтинг: 0 / 0
Вопрос по xml
    #40039213
BredSpit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо большое за ответы
...
Рейтинг: 0 / 0
Вопрос по xml
    #40039271
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BredSpit,

Нашел старое обсуждение , только там наоборот надо было.
Вот так можно:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
declare @val varchar(10)='', @x xml;

set @x = (
	select @val as test
	for xml path('mainTag'),elements,type
);

select @x.query('.');
go
...
Рейтинг: 0 / 0
Вопрос по xml
    #40039538
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ennor Tiegael, бааа... спасибо!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос по xml
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]