Удаление не 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
Настройки. Проверьте документы для получения дополнительной информации.