Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как удалить CR/LF символ переноса на новую строку внутри тега XML / 8 сообщений из 8, страница 1 из 1
26.03.2018, 11:01
    #39620389
Aleksey br
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить CR/LF символ переноса на новую строку внутри тега XML
Как преобразовать данные при выводе из таблицы из
Код: 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
26.03.2018, 11:05
    #39620390
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить CR/LF символ переноса на новую строку внутри тега XML
Aleksey br,

а откуда вон тот текст возьмётся?
...
Рейтинг: 0 / 0
26.03.2018, 11:06
    #39620391
AlanDenton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить CR/LF символ переноса на новую строку внутри тега XML
Запрос покажите которым вы такой XML генерите. Или это уже хранится в таблице и нужно просто step2/step3 убрать?
...
Рейтинг: 0 / 0
26.03.2018, 11:14
    #39620401
Aleksey br
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить CR/LF символ переноса на новую строку внутри тега XML
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
26.03.2018, 11:21
    #39620404
Sergey Sizov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить CR/LF символ переноса на новую строку внутри тега XML
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
26.03.2018, 11:33
    #39620416
Kopelly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить CR/LF символ переноса на новую строку внутри тега XML
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
26.03.2018, 11:49
    #39620423
Kopelly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить CR/LF символ переноса на новую строку внутри тега XML
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
26.03.2018, 13:10
    #39620480
Aleksey br
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить CR/LF символ переноса на новую строку внутри тега XML
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
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как удалить CR/LF символ переноса на новую строку внутри тега XML / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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