powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как удалить CR/LF символ переноса на новую строку внутри тега XML
8 сообщений из 8, страница 1 из 1
Как удалить CR/LF символ переноса на новую строку внутри тега XML
    #39620389
Aleksey br
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как преобразовать данные при выводе из таблицы из
Код: xml
1.
2.
3.
4.
5.
  <root>
  <step1>This is step 1</step1>
  <step2>This is step 2</step2>
  <step3>This is step 3</step3>
</root>>


в следующий вид для тега <step1>
Код: xml
1.
2.
3.
4.
5.
 <root>
  <step1>This is step 1 and row 1.This is step 1 and row 2.This is step 1 and row 3.</step1>
  <step2>This is step 2</step2>
  <step3>This is step 3</step3>
</root>


Есть ли такая возможность?
...
Рейтинг: 0 / 0
Как удалить CR/LF символ переноса на новую строку внутри тега XML
    #39620390
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksey br,

а откуда вон тот текст возьмётся?
...
Рейтинг: 0 / 0
Как удалить CR/LF символ переноса на новую строку внутри тега XML
    #39620391
AlanDenton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запрос покажите которым вы такой XML генерите. Или это уже хранится в таблице и нужно просто step2/step3 убрать?
...
Рейтинг: 0 / 0
Как удалить CR/LF символ переноса на новую строку внутри тега XML
    #39620401
Aleksey br
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlanDenton,

XML уже хранится в таблице.

Блин! удалил часть описания:
Из
Код: xml
1.
2.
3.
4.
5.
6.
7.
 <root>
  <step1>This is step 1 and row 1.
            This is step 1 and row 2.
            This is step 1 and row 3.</step1>
  <step2>This is step 2</step2>
  <step3>This is step 3</step3>
</root>


получить:
Код: xml
1.
2.
3.
4.
5.
<root>
  <step1>This is step 1 and row 1.This is step 1 and row 2.This is step 1 and row 3.</step1>
  <step2>This is step 2</step2>
  <step3>This is step 3</step3>
</root>
...
Рейтинг: 0 / 0
Как удалить CR/LF символ переноса на новую строку внутри тега XML
    #39620404
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksey br,

1. А зачем плодить темы? В предыдущей уже указано, ято форматирование результата больше подходит для клиентской программы.
2. Зацикливанием на "внутри тега" вы демонстрируете незнание стандарта XML, который никак не реагирует на непечатные символы между тегами. То есть ваш текст
<root>
<step1>This is step 1 and row 1.This is step 1 and row 2.This is step 1 and row 3.</step1>
<step2>This is step 2</step2>
<step3>This is step 3</step3>
</root>

совершенно равнозначен для любого нормального парсера такому тексту:
<root><step1>This is step 1 and row 1.This is step 1 and row 2.This is step 1 and row 3.</step1><step2>This is step 2</step2><step3>This is step 3</step3></root>
который, как ни странно, можно получить простейшим реплейсом. И который ваша клиентская прога наверняка покажет точно также, как и ваш текст.
...
Рейтинг: 0 / 0
Как удалить CR/LF символ переноса на новую строку внутри тега XML
    #39620416
Kopelly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksey br,

declare @t varchar(max) = ' <root>
<step1>This is step 1 and row 1.
This is step 1 and row 2.
This is step 1 and row 3.</step1>
<step2>This is step 2</step2>
<step3>This is step 3</step3>
</root>';

with repl as
(Select a.t From (Values (@t)) a(t)
union all
Select stuff(repl.t,patindex('%[^>]'+char(13)+char(10)+'%',t)+1,2,' ')
From repl
Where patindex('%[^>]'+char(13)+char(10)+'%',t)>0
)
Select top 1 @t = t From repl Order by len(t)
print @t
...
Рейтинг: 0 / 0
Как удалить CR/LF символ переноса на новую строку внутри тега XML
    #39620423
Kopelly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksey br,

Либо
Код: sql
1.
2.
3.
4.
5.
6.
7.
replace(
   replace(
      replace(@xml,'>'+char(13)+char(10),@ДругойНеПечатныйСимвол),
      char(13)+char(10),
      ' '),
   @ДругойНеПечатныйСимвол,
   char(13)+char(10))
...
Рейтинг: 0 / 0
Как удалить CR/LF символ переноса на новую строку внутри тега XML
    #39620480
Aleksey br
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kopellywith repl as
(Select a.t From (Values (@t)) a(t)
union all
Select stuff(repl.t,patindex('%[^>]'+char(13)+char(10)+'%',t)+1,2,' ')
From repl
Where patindex('%[^>]'+char(13)+char(10)+'%',t)>0
)
Select top 1 @t = t From repl Order by len(t)
print @t

А как будет выглядеть такой запрос для
Код: sql
1.
2.
3.
declare @t table (ID int,data XML)
insert into @t
select CLAIMID, Data from TBL_NAME



Чтобы результат можно было потом присоединить к другому результату по ID
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как удалить CR/LF символ переноса на новую строку внутри тега XML
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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