什么是 HTML 中的 CDATA?

2022-08-30 01:39:03

CDATA在JavaScript标签和HTML中的用途是什么?

<script type="text/javascript"> 
// <![CDATA[

// ]]>
</script> 

答案 1

XML 文档中的所有文本都将由解析器进行分析。

但是,解析器将忽略 CDATA 节中的文本。

CDATA - (未分析的)字符数据

术语 CDATA 用于表示不应由 XML 分析器分析的文本数据。

像“<”和“&”这样的字符在 XML 元素中是非法的。

“<”将生成错误,因为解析器将其解释为新元素的开始。

“&”将生成错误,因为解析器将其解释为字符实体的开头。

某些文本(如 JavaScript 代码)包含大量“<”或“&”字符。为避免错误,可以将脚本代码定义为 CDATA。

解析器将忽略 CDATA 节中的所有内容。

CDATA 部分以 “” 开头,以 “ 结尾<![CDATA[]]>"

在程序输出中使用 CDATA

如果 Web 浏览器中的 CDATA 部分将文档呈现为 HTML,则它们可能会以不同的方式分析文档,因为 HTML 分析器无法识别 CDATA 开始标记和结束标记,也无法识别 HTML 实体引用(如标记内引用)。这可能会导致 Web 浏览器中的呈现问题,如果用于显示来自不受信任源的数据,则可能导致跨站点脚本编写漏洞,因为这两种分析器在 CDATA 部分的结束位置上存在分歧。&lt;<script>

简短的 SGML 教程

另外,请参阅维基百科上关于 CDATA 的条目


答案 2

CDATA在HTML中根本没有意义。

CDATA是一种 XML 构造,它设置通常#PCDATA解析字符数据的标记内容,以代替#CDATA,即非解析字符数据。它仅在 XHTML 中相关且有效。

它在标记中使用以避免解析和 。在HTML中,这是不需要的,因为在HTML中,已经#CDATA。script<&script