Удаление не HTML-тегов / текста из строки

У меня есть строка, которую мне нужно отправить в узле 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 ответа

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

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

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

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

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

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

< to &lt; 
> to &gt;
Другие вопросы по тегам