什么时候需要用CDATA啊

时间:2021-06-29 16:01:46
我的理解是标记中有中文就要用CDATA包含起来,但下面这段RSS代码,为什么title标记和category标记中的中文不用用CDATA包含起来呢

<?xml version="1.0" encoding="gb2312" ?> 
- <rss version="2.0">
- <channel>
  <title>站长资讯</title> 
  <link>http://www.chinahtml.com/</link> 
  <description>Latest 20 infos of 站长资讯</description> 
  <copyright>Copyright(C) Empire CMS</copyright> 
  <generator>Empire CMS by Empire Studio.</generator> 
  <lastBuildDate>Fri, 02 Sep 2011 13:02:55 +0000</lastBuildDate> 
  <ttl>60</ttl> 
- <image>
  <url>http://www.chinahtml.com/e/data/images/rss.gif</url> 
  <title>站长资讯</title> 
  <link>http://www.chinahtml.com/</link> 
  </image>
- <item>
- <title>
- <![CDATA[ 盛大文学疯狂扩展 单季收入过亿 
  ]]> 
  </title>
- <description>
- <![CDATA[  9月9日消息,盛大文学CEO侯小强(微薄)今日在腾讯微薄中爆料,经过一系列整合并购之后,拥有中国7大知名文学网站的盛大文学在第二季度净收入超过一亿元。 
  ]]> 
  </description>
  <link>http://www.chinahtml.com/1009/128434845019534.html</link> 
  <guid>http://www.chinahtml.com/1009/128434845019534.html</guid> 
  <category>互联网</category> 
- <author>
- <![CDATA[ 
  ]]> 
  </author>
  <pubDate>Mon, 13 Sep 2010 03:25:31 +0000</pubDate> 
  </item>
- <item>
- <title>
- <![CDATA[ IE9采用英特尔实现图形内容渲染
  ]]> 
  </title>
- <description>
- <![CDATA[  微软和英特尔正在紧密合作,以实现在IE9中的网页浏览硬件加速,IE9将支持Core i系列芯片加速,包括最新的Sandy Bridge。 
  ]]> 
  </description>
  <link>http://www.chinahtml.com/1009/128434820619533.html</link> 
  <guid>http://www.chinahtml.com/1009/128434820619533.html</guid> 
  <category>软件新闻</category> 

11 个解决方案

#1



我的理解是标记中有中文就要用CDATA包含起来

--------
谁告诉你的啊?

你百度一下就知道了啊,何必来问

#2


在CDATA中的数据是不会被做特殊处理的,比如转义字符

#3


在CDATA中的数据是不会被做特殊处理的,比如转义字符


这个我知道,那为什么上述代码中有些中文段落要用CDATA包含起来呢

#4


不一定是中文的原因,因为可能内容不一定,可能有其他不定字符呢?所以要用CDATA

#5


lz的例子应该用不用CDATA没区别

#6


估计是考虑到CDATA中的内容可能包含须转义的字符,所以用CDATA包起来了。

#7


这些没有做过

#8


cdata中的字符不会被处理 比如空格在正常的中为&nbsp;如果在cdata中的话他表示为&nbsp; 不做任何的转换,写什么就是什么。

#9


CDATA是用于需要原文保留的内容,尤其是会在解析xml过程中产生歧义的部分

#10


内容不被转义 但要避免出现[ [[ ] 等字符

#11


什么时候需要用CDATA啊[yabao=][/yabao]
引用
Quote:
Quote:
Quote:
[code=csharp][code=c][code=delphi][code=php][u][u][u][u][u][u][u][/u][/u][/u][/u][/u][/u][/u]
[/code][/code][/code][/code]

#1



我的理解是标记中有中文就要用CDATA包含起来

--------
谁告诉你的啊?

你百度一下就知道了啊,何必来问

#2


在CDATA中的数据是不会被做特殊处理的,比如转义字符

#3


在CDATA中的数据是不会被做特殊处理的,比如转义字符


这个我知道,那为什么上述代码中有些中文段落要用CDATA包含起来呢

#4


不一定是中文的原因,因为可能内容不一定,可能有其他不定字符呢?所以要用CDATA

#5


lz的例子应该用不用CDATA没区别

#6


估计是考虑到CDATA中的内容可能包含须转义的字符,所以用CDATA包起来了。

#7


这些没有做过

#8


cdata中的字符不会被处理 比如空格在正常的中为&nbsp;如果在cdata中的话他表示为&nbsp; 不做任何的转换,写什么就是什么。

#9


CDATA是用于需要原文保留的内容,尤其是会在解析xml过程中产生歧义的部分

#10


内容不被转义 但要避免出现[ [[ ] 等字符

#11


什么时候需要用CDATA啊[yabao=][/yabao]
引用
Quote:
Quote:
Quote:
[code=csharp][code=c][code=delphi][code=php][u][u][u][u][u][u][u][/u][/u][/u][/u][/u][/u][/u]
[/code][/code][/code][/code]