如果我正在构建一些XML并使用<![CDATA[...]]>
,如何编码可能包含]]>
子字符串的数据?它会]]>
吗?我问,因为我一直认为CDATA内容是文字内容。
答案 0 :(得分:8)
它不是非常有效,或易于阅读,或任何其他内容,但an approach to this似乎在写作..
]]]]><![CDATA[>
答案 1 :(得分:2)
你可以使用两个cdata标签,第一个包含]],第二个包含&gt;
答案 2 :(得分:-1)
CDATA在某种意义上是文字内容,但当然必须有某种方式来标记CDATA块的结尾,无论你选择什么,都必须以某种方式在你的字符串中表示。
当我不得不像你似乎必须在另一个CDATA块中处理包含CDATAs的XML文档时,我放弃并将整个事件编码为Base64。然后另一方提取文本并对其进行解码。
Base64非常方便,因为它有多种语言编码和解码ASCII字符串的通用支持和/或简单算法,在我的例子中是ASP.NET应用程序中的C#和Javascript。
答案 3 :(得分:-2)
实体不应该有效吗?
像这样:&amp; 93;&amp; 93;>
或者,只有其中一个:]] >
93适用于latin1,如果以utf-8发送数据,则需要unicode实体。
作为旁注,还有其他字符在CDATA块中不允许,还有一些奇怪的引用和控制流字符。