如果我正在构建一些 XML 并使用<![CDATA[...]]>
,如何对可能包含]]>
子字符串的数据进行编码?会]]>
吗?我问是因为我一直认为 CDATA 内容是文字内容。
Jeremy
问问题
2296 次
4 回答
8
它的效率不是很高,也不是很容易阅读,或者其他任何东西,但解决这个问题的方法似乎是写作......
]]]]><![CDATA[>
于 2009-02-12T06:46:23.870 回答
2
您可以只使用两个 cdata 标签,第一个包含 ]],第二个包含 >
于 2009-02-12T06:58:10.173 回答
-1
从某种意义上说,CDATA 是文字内容,但当然必须有某种方法来标记 CDATA 块的结尾,并且无论您选择什么,都必须以某种方式在您的字符串中表示。
当我不得不在另一个 CDATA 块中处理包含 CDATA 的 XML 文档时,就像您似乎必须做的那样,我放弃了并将整个事情编码为 Base64。然后另一方提取文本并对其进行解码。
Base64 很方便,因为它具有通用的支持和/或简单的算法,可以用多种语言将 ASCII 字符串编码和解码成它,在我的例子中是 ASP.NET 应用程序中的 C# 和 Javascript。
于 2009-02-12T06:48:44.940 回答
-2
实体不应该工作吗?
像这样:&93;&93;>
或者,只是其中之一:]]>
93 用于 latin1,如果以 utf-8 发送数据,则需要 unicode 实体。
作为旁注,还有其他字符在 CDATA 块中也是不允许的,一些奇怪的引号和控制流字符。
于 2009-02-12T06:48:38.560 回答