Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Экранированные символы заменить на их нормальный вид дешево и сердито  [new]
aleks2
Guest
Есть вот такие строки:
declare @s nvarchar(max) = N'<p style="margin-left:-7.1pt;"><strong>Полулюкс</strong> ...</p>';

в них надо "<" заменить на ">" и т.д.
Понятно, что replace справится, но вдруг есть способ проще?
16 окт 16, 12:30    [19786697]     Ответить | Цитировать Сообщить модератору
 Re: Экранированные символы заменить на их нормальный вид дешево и сердито  [new]
aleks2
Guest
Вощем движок форума усе скушал

"& l t ;" на "<"
16 окт 16, 12:33    [19786701]     Ответить | Цитировать Сообщить модератору
 Re: Экранированные символы заменить на их нормальный вид дешево и сердито  [new]
aleks2
Guest
Исходная строка
'& l t;p style=& quot;margin-left:-7.1pt;& quot;& g t & l t;strong>Полулюкс& l t;/strong& g t ...& l t;/p>'
16 окт 16, 12:35    [19786706]     Ответить | Цитировать Сообщить модератору
 Re: Экранированные символы заменить на их нормальный вид дешево и сердито  [new]
invm
Member

Откуда: Москва
Сообщений: 9396
declare @s nvarchar(max) = N'&lt;p style=&quot;margin-left:-7.1pt;&quot;&gt;&lt;strong&gt;Полулюкс&lt;/strong&gt; ...&lt;/p&gt;';

select cast('<a>' + @s + '</a>' as xml).value('a[1]', 'nvarchar(max)')
16 окт 16, 13:23    [19786756]     Ответить | Цитировать Сообщить модератору
 Re: Экранированные символы заменить на их нормальный вид дешево и сердито  [new]
aleks2
Guest
invm
declare @s nvarchar(max) = N'<p style="margin-left:-7.1pt;"><strong>Полулюкс</strong> ...</p>';

select cast('<a>' + @s + '</a>' as xml).value('a[1]', 'nvarchar(max)')


Да... круто.
Однако, на всем громадье кривых строк - не канает
Сообщение 9448, уровень 16, состояние 1, строка 1
Синтаксический анализ XML: строка 1, символ 440, проверка на корректность: необъявленная сущность
Эта штука умудряется синтаксический анализ захерачить. А строку то писали под HTML.
16 окт 16, 13:40    [19786791]     Ответить | Цитировать Сообщить модератору
 Re: Экранированные символы заменить на их нормальный вид дешево и сердито  [new]
invm
Member

Откуда: Москва
Сообщений: 9396
aleks2
Однако, на всем громадье кривых строк - не канает
Значит не все спецсимволы экранированы.
16 окт 16, 14:34    [19786872]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить