Удаление не HTML-тегов / текста из строки - PullRequest
0 голосов
/ 02 июля 2018

У меня есть строка, которую мне нужно отправить в узле xml стороннему приложению. Затем эта строка анализируется через html-парсер. Строка может иметь html, но проблема возникает с тегами, отличными от html. Например

<cfset str = "This mail was <b>sent</b> by Jen Myke <jmyke@mail.com> on June 20th.<br/> Click on <a href='http://google.com'>this link</a> for more information.">

В строке также могут быть символы не-utf, что также вызывает проблемы, но я нашел старое сообщение в блоге, которое может помочь удалить не-utf.

<cfset str = reReplace(str, "[^\x20-\x7E]", "", "ALL")>

Но я не могу понять, как я могу удалить HTML похожи.

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Попробуйте обернуть строку в encodeForXML(). Это должно кодировать любой не-ASCII символ для использования в узле XML.

<node>#encodeForXml(str)#</node>

Если вам нужно передать данные в атрибут, то

<node attr=#encodeForXmlAttribute(str)#"/>

Редактировать: Вы можете попробовать использовать getSafeHTML () перед кодированием остальной части строки. Это удалит HTML-теги из строки, используя файл конфигурации XML для установки настроек AntiSamy. Проверьте документы для получения дополнительной информации.

0 голосов
/ 02 июля 2018

Попробуйте заменить

< to &lt; 
> to &gt;
...