CDATA,你这个鸡肋!

作者:vkvi 来源:ITPOW(原创) 日期:2010-6-28

又是一个鸡肋,为什么要说又呢?呵呵。

XML 的 CDATA,即 <![CDATA[ 与 ]]> 之间可以放 <、>、&、'、" 字符,由于 CDATA 中的内容不会被解析,所以上述字符在 CDATA 中不会造成 XML 的错误,否则“<”会被当作一个标签的开始。

但是,重要了。CDATA 中仍然不能放一些东西:

  • 一是放特殊符号危险,比如“”,可能某些解析器认识,某些解析器不认识,解决办法:XmlTextReader 解析 XML 时遇到特殊字符出错
  • 二是不能放 <![CDATA[ 和 ]]>。像我们的 IT 类文章中可能经常出现这些字符,出现了,若写在 XML 势必出错,解决办法是用 System.Web.HttpUtility.HtmlEncode 将 <、>、&、'、" 进行编码,取值时再解码。那问题来了,既然已经编码了,还要 CDATA 做什么?

相关阅读

相关文章