什么是CDATA的意思

17

各位大佬,

我是自学者。很多你们这些开明的人称之为基础知识的东西我都不懂。

在阅读这个jQuery教程时,我注意到了这个标签(用缺乏更好单词来形容):“CDATA”,如此显示(从顶部数起第三行):

<script src="http://jquery.com/src/jquery-latest.js"></script>
<script> 
//<![CDATA[    
$(document).ready(function(){
$(".article .thebody").hide();
$("#container .article ul")
       .prepend("<li class='readbody'><a href='' title='Read the article'>Read Body</a></li>");

$(".actions li.readbody a").click(function(event){
$(this).parents("ul").prev(".thebody").toggle();
event.preventDefault();
     });
   });
//]]></script>

CDATA的含义是什么?是否有类似于CDATA的标签?


17
CDATA。CDATA运行。运行数据,快跑! - Jeff Davis
5个回答

16
使用<![CDATA[,您可以在XML(和XHTML)文档中嵌入JS,而无需将<>&特殊XML字符替换为XML实体&lt;&gt;&amp;等,以防止XML语法变形和出现错误,例如实体名称必须紧跟在实体引用中的'&'之后。然而,一般建议将JS代码放在自己的.js文件中,然后通过<script src>包含它。
在普通HTML文档中不需要使用<![CDATA[。除非您正在使用基于XML的视图技术,如Facelets(用于JSF)或ASP.NET MVC,否则绝对没有必要将HTML声明为XHTML。只需要一个<!DOCTYPE html>即可。

我已经开始使用Netbeans 6.9编写一个项目。我的所有代码(html/PHP)都以<!DOCTYPE html>开头。感谢您的参与。 - Chris

3
在这种情况下使用CDATA的原因是为了允许文档作为纯XML加载。在XML中,//将被视为文本而不是注释,因此它会将CDATA视为XML标记。

3
维基百科对此做了很好的总结:
在XML文档或外部解析实体中,CDATA段是一个元素内容部分,标记为解析器仅解释为字符数据,而不是标记。 CDATA段仅是表示字符数据的另一种语法;表现为CDATA段和以通常语法表示的字符数据之间没有语义差异,在这种语法中,"<"和"&"将分别由"<"和"&amp;"表示。
我认为,CDATA可以使XML解析器不会消毒您的代码(使其显示为纯文本,而不是代码)。
希望这能解释其中的一些内容...

2

CDATA是被验证器忽略的字符数据。

您可以将类似JavaScript的内容用CDATA标签包裹起来,这样您的HTML代码就能够通过验证(当然,如果您遵循更近期的XHTML标准,则无需使用CDATA)。


1

这是一个特殊的序列,允许在保持页面有效性的同时内嵌包含特殊字符的JavaScript。在此处查看更多详情。基本上,不用担心它的确切含义,但确实需要将其放在那里!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接