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

Откуда: Москва
Сообщений: 6
Прошу прощения у модераторов, уже писала вчера в теме "XML, XSL, XPath, XQuery", но может быть нужно именно исходные данные перегруппировать...
Вроде простой XML, а что то не соображу как сделать...

declare @t1 table (ID int, NAME varchar(100), NUM varchar(10))

INSERT INTO @t1 VALUES (13525584, 'Пушкин Александр Сергеевич','')

SELECT * FROM @t1 DATA
   FOR XML AUTO, TYPE, ELEMENTS, ROOT('REQ')



Получается так:
<REQ>
  <DATA>
    <ID>13525584</ID>
    <NAME>Пушкин Александр Сергеевич</NAME>
    <NUM></NUM>
  </DATA>
</REQ>



А надо так:
<REQ>
  <DATA>
    <ID [b]Value[/b]="13525584"/>
    <NAME [b]Value[/b]="Пушкин Александр Сергеевич"/>
    <NUM [b]Value[/b]=""/>
  </DATA>
</REQ>
6 авг 14, 09:47    [16404695]     Ответить | Цитировать Сообщить модератору
 Re: Вроде простой XML  [new]
Zoom-16
Member

Откуда: Москва
Сообщений: 6
<REQ>
  <DATA>
    <ID Value="13525584"/>
    <NAME Value="Пушкин Александр Сергеевич"/>
    <NUM Value=""/>
  </DATA>
</REQ>


Прошу прощения - доп.разметка в коде не поддерживается...
6 авг 14, 09:50    [16404707]     Ответить | Цитировать Сообщить модератору
 Re: Вроде простой XML  [new]
хмхмхм
Guest
Zoom-16,

наверное как-то так:
declare	@t1 table (
	ID int
   ,NAME varchar(100)
   ,NUM varchar(10)
   )

insert	 into @t1
values
		 (13525584, 'Пушкин Александр Сергеевич', '')


declare	@output_xml xml

select
   @output_xml = (
				  select * from @t1 DATA
				 for
				  xml auto
					 ,type
					 ,elements
					 ,root('REQ')
				 )




select
   cast(@output_xml as nvarchar(max))
  ,replace(replace(replace(replace(cast(@output_xml as nvarchar(max)), '<ID>', '<ID Value="'), '</ID>', '"></ID>'),
				   '<Name>', '<Name Value="'), '</Name>', '"></Name>')
6 авг 14, 10:09    [16404802]     Ответить | Цитировать Сообщить модератору
 Re: Вроде простой XML  [new]
Jovanny
Member

Откуда:
Сообщений: 1195
declare @t1 table (ID int, NAME nvarchar(100), NUM varchar(10))

INSERT INTO @t1 VALUES (13525584, N'Пушкин Александр Сергеевич','')

SELECT ID AS 'ID/@Value', NAME 'NAME/@Value', NUM 'NUM/@Value' FROM @t1
   FOR XML PATH('DATA'), TYPE, ELEMENTS, ROOT('REQ')
6 авг 14, 10:26    [16404898]     Ответить | Цитировать Сообщить модератору
 Re: Вроде простой XML  [new]
Zoom-16
Member

Откуда: Москва
Сообщений: 6
Jovanny, СПАСИБО!
6 авг 14, 10:46    [16405023]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить