编码]]>在cdata中

时间:2009-02-12 06:43:00

标签: xml cdata

如果我正在构建一些XML并使用<![CDATA[...]]>,如何编码可能包含]]>子字符串的数据?它会]]&gt;吗?我问,因为我一直认为CDATA内容是文字内容。

4 个答案:

答案 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; &gt;

或者,只有其中一个:]] &gt;

93适用于latin1,如果以utf-8发送数据,则需要unicode实体。

作为旁注,还有其他字符在CDATA块中不允许,还有一些奇怪的引用和控制流字符。

相关问题