1CLenta.ru  

Замена HTML кодов символов в тексте средствами 1С

Программирование системы     28.04.2016 11:26     5155

В системе 1С есть возможность запрашивать web-страницы. При запросе HTML страниц может возникнуть
необходимость в замене HTML кодов на соответствующие символы. HTML коды символов часто используются при создании web страниц. В Интернете можно найти таблицы соответствий символов кодам.

Простая функция замены


Если в заранее известно какие символы нужно заменить, то можно воспользоваться стандартной функцией СтрЗаменить().
Функция ЗаменаHTMLКодов(Знач ВходящаяСтрока)

СоответствиеКодов = Новый Соответствие();
СоответствиеКодов.Вставить("[", "[");
СоответствиеКодов.Вставить("]", "]");
СоответствиеКодов.Вставить(" ", " ");

Для каждого ЭлементКод Из СоответствиеКодов Цикл
ВходящаяСтрока = СтрЗаменить(ВходящаяСтрока, ЭлементКод.Ключ, ЭлементКод.Значение);
КонецЦикла;

Возврат ВходящаяСтрока;

КонецФункции


Универсальная функция замены HTML кодов на символы


Функция УниверсальнаяЗаменаHTMLКодов(Знач ВходящаяСтрока)

МногострочнаяСтрока = СтрЗаменить(ВходящаяСтрока, "&#", Символы.ПС);
МногострочнаяСтрока = СтрЗаменить(МногострочнаяСтрока, ";", Символы.ПС);

Для НомерСтроки = 1 По СтрЧислоСтрок(МногострочнаяСтрока) Цикл

ПодСтрока = СтрПолучитьСтроку(МногострочнаяСтрока, НомерСтроки);

Если Найти(ПодСтрока, " ") > 0 ИЛИ ПустаяСтрока(ПодСтрока) Тогда
Продолжить;
КонецЕсли;

Попытка
КодСимвола = Число(ПодСтрока);
Исключение
Продолжить;
КонецПопытки;

Символ = Символ(КодСимвола);
ЗаменяемаяПодСтрока = "&#" + ПодСтрока + ";";
ВходящаяСтрока = СтрЗаменить(ВходящаяСтрока, ЗаменяемаяПодСтрока, Символ);

КонецЦикла;

Возврат ВходящаяСтрока;

КонецФункции

Поиск и замену HTML кодов можно организовать с помощью регулярных выражений. В системе 1С, работа с регулярными выражениями осуществляется через COM технологию. Соответственно такой подход требует больших вычислительных ресурсов. В тоже время замена через регулярные выражения - это более универсальный способ.

Комментарии (0)