我有一个字符串,需要在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相似的东西。
答案 0 :(得分:2)
尝试使用encodeForXML()
来包装字符串。这应该对在XML节点内使用的任何非ASCII字符进行编码。
<node>#encodeForXml(str)#</node>
如果您需要在属性中传递数据,则
<node attr=#encodeForXmlAttribute(str)#"/>
编辑:您可以在编码其余字符串之前尝试使用getSafeHTML()。这将使用XML配置文件从字符串中删除HTML标签,以设置您的AntiSamy
设置。检查文档以获取更多信息。
答案 1 :(得分:0)
尝试更换
< to <
> to >