我有以下 HTML block :
<p>The quick brown fox jumps over the lazy dog — The quick brown fox jumps over the lazy dog.</p>
<p>The quick brown fox jumps over the lazy dog — The quick brown fox jumps over the lazy dog.
<br>The quick brown fox jumps over the lazy dog — The quick brown fox jumps over the lazy dog.
它不是有效的 XHTML。但是,我需要将此 HTML 包含在 XML 文档中。我尝试使用 XMLFormat()
为了转换 <
至 <
和 >
至 >
,效果很好。不幸的是,它也会转换 —
至 &mdash;
,它无效并在 CFXML 标记中引发异常。
<cfxml variable="myXML">
<content>#XMLFormat(myHTML)#</content>
</cfxml>
我该如何解决这个问题?
最佳答案
您有几个选择。很大程度上取决于如何使用这些内容。包含所需的输出文档以及指示该 xml 的使用位置将非常有帮助。
如果你根本不想弄乱 HTML 的内容,你总是可以使用 CDATA ,像这样:
<cfxml variable="myXML">
<content><![CDATA[#myHTML#]]></content>
</cfxml>
此外,我知道您说您不想转换剩余的 & 符号,但我只是不明白这是怎么回事。要么 HTML 内容是您要处理的字符串——在这种情况下,所有内容都应该进行转义,以便以后可以取消转义——或者它是您希望成为文档一部分的有效 XML。我的意思是,当您处理 <content>
的内容时稍后标记,如果未转义 & 符号,您将遇到问题。
关于html - 使用 ColdFusion 函数 XMLFormat() 时如何转义 HTML 字符实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2187991/