3 回答
TA贡献1845条经验 获得超8个赞
XML文档中的所有文本都将由解析器解析。
但是解析器将忽略CDATA节中的文本。
CDATA-(未解析)字符数据
术语CDATA用于不应该由XML解析器解析的文本数据。
XML元素中的字符“ <”和“&”是非法的。
“ <”将产生错误,因为解析器将其解释为新元素的开始。
“&”将产生错误,因为解析器将其解释为字符实体的开始。
某些文本(例如JavaScript代码)包含许多“ <”或“&”字符。为了避免错误,可以将脚本代码定义为CDATA。
解析器将忽略CDATA节中的所有内容。
一个CDATA部件以“开始<![CDATA[”,结尾是“ ]]>”
在程序输出中使用CDATA
如果Web浏览器将文档呈现为HTML,则XHTML文档中的CDATA部分可能会被Web浏览器以不同的方式解析,因为HTML解析器无法识别CDATA的开始和结束标记,也无法识别HTML实体引用(例如<在<script>标记内)。如果用于显示来自不受信任来源的数据,这可能会导致Web浏览器中的渲染问题,并可能导致跨站点脚本漏洞,因为这两种解析器将在CDATA部分的结束位置上存在分歧。
TA贡献1866条经验 获得超5个赞
CDATA
在HTML中根本没有任何意义。
CDATA
是一个XML构造,用于设置标记的内容,该内容通常为#PCDATA-解析的字符数据,取而代之的是#CDATA,即未解析的字符数据。它仅在XHTML中相关且有效。
在script
标记中使用它可以避免解析<
和&
。在HTML中,这是不需要的,因为在HTML中,script
已经是#CDATA。
添加回答
举报