XML中CDATA的运用

CDATA术语,主要用于标记语言(SGML和XML)中直接的但是有关联的字符数据。这个术语表明文档的某一部分是一个普通的的字符数据块而不是非字符数据或者拥有更特殊和限制结构的字符数据。
在一个XML文档或者一个经过解析的外部实体中,一个CDATA片段是一个元素内容中标记为解析器单纯地解释为文本数据的片段。一个CDATA片段只不过是表达字符数据的自动转换语法。在单独的CDATA片段中含有例如'<'和‘&’这样的字符和一个按照一般语法将它们转义为“&lt”和“&”字符的字符数据没有语义上的差别。

CDATA(character data)片段是一串其中含有可以被视为xml标记的字符,但是不会被解析器解析到的字符数据块。

CDATA与Comments(注释)的区别:

  • CDATA仍然是document的一部分,而comment却不是;
  • 在CDATA中不可以含有“]]>”(CDEnd字符数据块结束标记),而commnent中‘--’是无效的;
  • 在comment中参数实体引用无法被识别。

从结构良好的文档中选取三个片段反映上面的差异:


参数实体已经被扩展



’(如果我需要使用它,必须转义一个括号或大于号)。 ]]>

为了更清晰地展现两者直接的差别,将下面的文档存为.xml后缀的文档,然后用firefox或者chrome打开,CDATA中文本会显示出来,而COMMENT中文本却不会显示出来。





CDATA Example

Using a Comment




Using a CDATA Section



& " ]]>

看到的效果如下:
difference between CDATA and Comment display in chrome

本文参考了以下资料:

posted @ 2017-02-21 16:33  snicker  阅读(1543)  评论(0)    收藏  举报