CDATASection in DOM Level 2 Core

CDATA sections are used to escape blocks of text containing characters that would otherwise be regarded as markup.

For more information see

Instance Properties

name type description
attributes NamedNodeMap (read only) [from Node]
childNodes NodeList (read only) [from Node]
data String [from CharacterData]
firstChild Node (read only) [from Node]
lastChild Node (read only) [from Node]
length Number (read only) [from CharacterData]
localName String (read only) [from Node]
namespaceURI String (read only) [from Node]
nextSibling Node (read only) [from Node]
nodeName String (read only) [from Node]
nodeType Number (read only) [from Node]
nodeValue String [from Node]
ownerDocument Document (read only) [from Node]
parentNode Node (read only) [from Node]
prefix String [from Node]
previousSibling Node (read only) [from Node]

Instance Methods

name returns description
addEventListener(type,listener,useCapture) (none) [from EventTarget]
appendChild(newChild) Node [from Node]
appendData(arg) (none) [from CharacterData]
cloneNode(deep) Node Return a new copy of the node. [from Node]
deleteData(offset,count) (none) [from CharacterData]
dispatchEvent(evt) Boolean Dispatches an event to the invoking object. [from EventTarget]
hasAttributes() Boolean [from Node]
hasChildNodes() Boolean [from Node]
insertBefore(newChild,refChild) Node [from Node]
insertData(offset,arg) (none) [from CharacterData]
isSupported(feature,version) Boolean [from Node]
normalize() (none) [from Node]
removeChild(oldChild) Node [from Node]
removeEventListener(type,listener,useCapture) (none) [from EventTarget]
replaceChild(newChild,oldChild) Node [from Node]
replaceData(offset,count,arg) (none) [from CharacterData]
splitText(offset) Text [from Text]
substringData(offset,count) String [from CharacterData]



CDATA sections are used to escape blocks of text containing characters that would otherwise be regarded as markup. The only delimiter that is recognized in a CDATA section is the "]]>" string that ends the CDATA section. CDATA sections cannot be nested. Their primary purpose is for including material such as XML fragments, without needing to escape all the delimiters.

The DOMString attribute of the Text node holds the text that is contained by the CDATA section. Note that this may contain characters that need to be escaped outside of CDATA sections and that, depending on the character encoding ("charset") chosen for serialization, it may be impossible to write out some characters as part of a CDATA section.

The CDATASection interface inherits from the CharacterData interface through the Text interface. Adjacent CDATASection nodes are not merged by use of the normalize method of the Node interface.

Note: Because no markup is recognized within a CDATASection, character numeric references cannot be used as an escape mechanism when serializing. Therefore, action needs to be taken when serializing a CDATASection with a character encoding where some of the contained characters cannot be represented. Failure to do so would not produce well-formed XML.
One potential solution in the serialization process is to end the CDATA section before the character, output the character using a character reference or entity reference, and open a new CDATA section for any further characters in the text node. Note, however, that some code conversion libraries at the time of writing do not return an error or exception when a character is missing from the encoding, making the task of ensuring that data is not corrupted on serialization more difficult.

Methods that return a CDATASection

name of object description
createCDATASection(data) Document