XML内部的HTML.我应该使用CDATA还是编码HTML

alb*_*rto 36 xml html-encode cdata

我正在使用XML来共享HTML内容.AFAIK,我可以通过以下方式嵌入HTML:

  • 编码:我不知道它是否完全安全使用.我将不得不再次解码它.

  • 使用CDATA部分:如果内容包含结束标记"]]>"和某些十六进制字符,我仍然会遇到问题,我相信.另一方面,XML解析器将为我透明地提取信息.

我应该选择哪个选项?

更新:xml将在java中创建,并作为字符串传递给.net Web服务,它将被解析回来.因此,我需要能够将xml导出为字符串并使用"doc.LoadXml(xmlString);"加载它.

Ned*_*der 33

这两个选项几乎完全相同.以下是您的两个选择:

<html>This is &lt;b&gt;bold&lt;/b&gt;</html>

<html><![CDATA[This is <b>bold</b>]]></html>
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,您都必须检查字符串是否要转义特殊字符.很多人假装CDATA字符串不需要任何转义,但正如你所指出的,你必须确保"]]>"不会在未转义中滑动.

在这两种情况下,XML处理器都会将您的字符串返回给您解码.


Que*_*tin 12

CDATA更容易通过眼睛阅读,而编码内容可以安全地结束CDATA标记 - 但您不必关心.只需使用XML库并不再担心它.然后你要说的是"将这个文本放在这个元素中",库将对其进行编码或将其包装在CDATA标记中.


Moh*_*med 7

CDATA简单易懂.