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

Откуда:
Сообщений: 19
Здравия всем

предположим есть xml переменная с содержимым вида

<goods>
<goods_name>Носки</goods_name>
</goods>

<goods>
<goods_name>трусселя</goods_name>
</goods>

<goods>
<goods_name>трусселя</goods_name>
</goods>
............................................

<goods>
<goods_name>еще всякие товары</goods_name>
</goods>


как видим есть повторяющиеся значения, можно ли модифицировать xml таким образом
чтоб он стал такого вида

<goods>
<num> 1 </num>
<goods_name> Носки </goods_name>
</goods>

<goods>
<num> 2 </num>
<goods_name> трусселя </goods_name>
</goods>

<goods>
<num> 3 </num>
<goods_name> трусселя </goods_name>
</goods>
............................................

<goods>
<num> n </num>
<goods_name> еще всякие товары </goods_name>
</goods>
17 июн 14, 16:25    [16177032]     Ответить | Цитировать Сообщить модератору
 Re: Модификация xml, вставка нового тега  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8826
xml -> table -> xml
17 июн 14, 16:53    [16177247]     Ответить | Цитировать Сообщить модератору
 Re: Модификация xml, вставка нового тега  [new]
serpentariy
Member

Откуда:
Сообщений: 266
Kill_Maker,
declare @x xml = N'<goods>
<goods_name>Носки</goods_name>
</goods>

<goods>
<goods_name>трусселя</goods_name>
</goods>

<goods>
<goods_name>трусселя</goods_name>
</goods>

<goods>
<goods_name>еще всякие товары</goods_name>
</goods>'
declare @num int = 1
select @x
while @x.exist('//goods[empty(child::num)]') = 1
begin
    set @x.modify('insert <num>{sql:variable("@Num")}</num> as first into (//goods[empty(child::num)])[1]');
    set @num += 1;
end
select @x
17 июн 14, 17:31    [16177599]     Ответить | Цитировать Сообщить модератору
 Re: Модификация xml, вставка нового тега  [new]
Kill_Maker
Member

Откуда:
Сообщений: 19
Благодарю!!!
17 июн 14, 18:07    [16177799]     Ответить | Цитировать Сообщить модератору
 Re: Модификация xml, вставка нового тега  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8826
Ацкий способ нумерации.
17 июн 14, 18:51    [16177972]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить