Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / поменять xml объект / 3 сообщений из 3, страница 1 из 1
20.02.2008, 18:59
    #35145618
Димитрий_Галин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поменять xml объект
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DECLARE @newXML xml;

SET @newXML = '
<row>
<not_replace>abd</not_replace>
<to_replace>fooA</to_replace>
</row>
<row>
<not_replace>abd</not_replace>
<to_replace>fooB</to_replace>
</row>
';

хочется одной командой, я так понимаю, рядом с этой
Код: plaintext
1.
2.
3.
4.
5.
6.
SET @elmName = 'to_replace';
SET @newXML.modify('
replace value of (row/rownew/@*[local-name() = sql:variable("@elmName")])[1]
with "bar"
');
SELECT @newXML;

поменять значение некоторых атрибутов, используя их текущее значение.
получить следущее:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<row>
<not_replace>abd</not_replace>
<to_replace>added_text\fooA</to_replace>
</row>
<row>
<not_replace>abd</not_replace>
<to_replace>added_text\fooB</to_replace>
</row>
...
Рейтинг: 0 / 0
22.02.2008, 01:29
    #35149312
PA
PA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поменять xml объект
Что-то типа этого:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
declare @count int
select @count = @newXML.value('count(/row/to_replace/text())', 'int')

while (@count >  0 )
begin
	set @newXML.modify('
	  replace value of ((/row/to_replace/text())[sql:variable("@count")])[1]
	  with concat("added_text\", ((/row/to_replace/text())[sql:variable("@count")])[1])
	')
	select @count = @count -  1 
end
...
Рейтинг: 0 / 0
22.02.2008, 01:32
    #35149314
Димитрий_Галин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поменять xml объект
PAЧто-то типа этого:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
declare @count int
select @count = @newXML.value('count(/row/to_replace/text())', 'int')

while (@count >  0 )
begin
	set @newXML.modify('
	  replace value of ((/row/to_replace/text())[sql:variable("@count")])[1]
	  with concat("added_text\", ((/row/to_replace/text())[sql:variable("@count")])[1])
	')
	select @count = @count -  1 
end


Спасибо
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / поменять xml объект / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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