public interface CDATASection
implements Text
org.w3c.dom.CDATASection |
CDATA部分用于转义包含字符的文本块,否则这些字符将被视为标记。 在CDATA部分中唯一可识别的分隔符是“]]>”字符串,用于结束CDATA部分。 CDATA部分不能嵌套。 它们的主要目的是包含诸如XML片段之类的材料,而无需转义所有的分隔符。
CharacterData.data
属性保存CDATA节包含的文本。 请注意,这可能包含需要在CDATA部分之外转义的字符,并且根据为序列化选择的字符编码(“字符集”),可能无法将某些字符写入CDATA部分。
CharacterData
接口通过CDATASection
接口继承Text
接口。 相邻的CDATASection
节点不通过使用Node
接口的normalize
方法合并。
没有对CDATA部分的内容进行词法检查,因此可能在内容中包含字符序列"]]>"
,该部分在[ XML 1.0 ]的2.7节的CDATA部分中是非法的。 在序列化期间,此字符序列的存在必须产生致命错误,或者在序列化之前必须拆分cdata部分(另请参阅DOMConfiguration
界面中的参数"split-cdata-sections"
)。
注意:由于在CDATASection
内没有标识,所以在序列化时字符数字引用不能用作转义机制。 因此,在使用字符编码序列化CDATASection
时,需要采取措施,其中某些包含的字符无法表示。 不这样做不会产生格式良好的XML。
注意:序列化过程中的一个潜在解决方案是在字符前面结束CDATA部分,使用字符引用或实体引用输出字符,并为文本节点中的任何其他字符打开新的CDATA部分。 但是,请注意,在编写本文时,某些代码转换库在编码中缺少字符时不会返回错误或异常,从而确保数据在序列化过程中不会损坏。
另见 Document Object Model (DOM) Level 3 Core Specification 。
Inherited constants |
---|
From interface org.w3c.dom.Node
|
Inherited methods |
|
---|---|
From interface org.w3c.dom.Text
|
|
From interface org.w3c.dom.CharacterData
|
|
From interface org.w3c.dom.Node
|