Coldfusion 从字符串中剥离非html标记/文本

Coldfusion 从字符串中剥离非html标记/文本,coldfusion,coldfusion-2016,Coldfusion,Coldfusion 2016,我有一个字符串,需要在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</

我有一个字符串,需要在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外观相似项

尝试更换

< to &lt; 
> to &gt;
尝试更换

< to &lt; 
> to &gt;

尝试使用
encodeForXML()
包装字符串。这应该对XML节点中使用的任何非ASCII字符进行编码

#encodeForXml(str)#

如果需要在属性中传递数据,则


尝试使用
encodeForXML()
包装字符串。这应该对XML节点中使用的任何非ASCII字符进行编码

#encodeForXml(str)#

如果需要在属性中传递数据,则


不,那不行。字符串通过转换为的CDATA传递,但它仍然会向解析器呈现无效的html。如果在“”标记之间插入空格或下划线会怎么样。这将导致字符串中正确的html出现问题。让我把一些html放到字符串中,尽管我已经提到字符串也包含有效的html。不,那不行。字符串通过转换为的CDATA传递,但它仍然会向解析器呈现无效的html。如果在“”标记之间插入空格或下划线会怎么样。这将导致字符串中正确的html出现问题。让我把一些html放到字符串中,尽管我已经提到字符串也包含有效的html。谢谢@Adrian。但这只能起到部分作用。事实上,它将允许我发送非utf,我已经在用所讨论的正则表达式做这件事了。我遇到的问题是无效的html标记,我需要解析它们,比如说完全删除它们或者去掉它们。你说的“非html标记”是什么意思?现代HTML本质上可以是语义的,这意味着你可以用任何“标记”来包装内容,比如
stuff
,他们可以随意设置样式。问题是第三方桌面应用程序上的HTML解析器(可能使用过时的解析器,并更改代码的这一部分,这既不是我的专业知识,也不是我的工资标准来决定的)。所以我想知道我是否可以从字符串中去掉非标准html标记。谢谢@Adrian。但这只能起到部分作用。事实上,它将允许我发送非utf,我已经在用所讨论的正则表达式做这件事了。我遇到的问题是无效的html标记,我需要解析它们,比如说完全删除它们或者去掉它们。你说的“非html标记”是什么意思?现代HTML本质上可以是语义的,这意味着你可以用任何“标记”来包装内容,比如
stuff
,他们可以随意设置样式。问题是第三方桌面应用程序上的HTML解析器(可能使用过时的解析器,并更改代码的这一部分,这既不是我的专业知识,也不是我的工资标准来决定的)。所以我想知道我是否可以从字符串中去掉非标准的html标记。你的字符串是如何创建的,它是从哪里来的?所有失败的解析器作业是否都包含一封格式为
John Smith
的电子邮件?字符串是如何创建的,它来自哪里?所有失败的解析器作业是否都包含格式为
John Smith
的电子邮件?