coldfusion - 从字符串中剥离非 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。
解决方案
尝试用encodeForXML()
. 这应该对任何非 ASCII 字符进行编码,以便在 XML 节点中使用。
<node>#encodeForXml(str)#</node>
如果您需要在属性中传递数据,那么
<node attr=#encodeForXmlAttribute(str)#"/>
编辑:您可以在对字符串的其余部分进行编码之前尝试使用getSafeHTML() 。这将使用 XML 配置文件从字符串中删除 HTML 标记以设置您的AntiSamy
设置。检查文档以获取更多信息。
推荐阅读
- batch-file - 批处理完成后保持 Octave 打开
- java - 是否可以在 java if 语句中使用字符串
- urlencode - GNU mailutils:如何在邮箱模式中编码'@'和'$'
- ubuntu - 无法为所有用户将根 CA 导入 Ubuntu
- javascript - AWS 控制台的 SessionBox 样式扩展:您可以使用 Chrome 扩展 API 创建新的 chrome 配置文件吗?
- sql - 从另一个表插入条件数据
- python - 如何在 pydantic 中重用 root_validator
- java - 获取 - 包 org.json 不存在 - 无法使用 JSONArray / JSONObject
- django - 为什么我会收到 heroku 错误:App 与 buildpack 不兼容
- flutter - 在颤动中对齐特定字符