L'objet IXMLDOMCDATASection est utilisé pour éviter que des blocs de texte soient interprêtés comme du marquage XML.

Set Objet_CDATA = _
                           Objet_Document.createCDATASection(Contenu)

Les sections CDATA permettent l'inclusion de matériel comme des fragments XML à l'intérieur des documents XML sans nécessiter d'opérations d'échappement contrôler tpus les délimiteurs. Le seul délimiteur reconnu dans une section CDATA est sa séquence de fermeture ]]>.

<![CDATA[Texte non analysé]]>

Le texte contenu dans une section CDATA est stocké dans un noeud textuel. Ce texte peut contenir des caractères qui nécessitent normalement des opérations d'échappement dans un document XML bien formé.

Set Objet_Text = Objet_CDATA.firstChild

Les sections CDATA ne peuvent s'imbriquer les unes dans les autres.

Plusieurs méthodes permettent de travailler directement sur le contenu textuel d'une section CDATA, telles que les méthodes replaceData, substringData ou encore splitText effectuant respectivement le remplacement délimité d'une chaîne de caractères, de retourner une partie du contenu textuel, ou de découper le texte en plusieurs sous éléments.

Objet_CDATA.replaceData 16, 7, "est devenu"
Le langage XML devient un langage universel.

Texte = Objet_CDATA.substringData 0, 14
Le langage XML est devenu un langage universel.

Objet_CDATA.splitText 25
Le langage XML est devenu un langage universel.
Les Propriétés
Propriété
Description
Set Objet_NamedNodeMap = Objet_CDATA.attributes
contient la liste des attributs pour ce noeud en lecture seule.
Chaîne = Objet_CDATA.baseName
retourne le nom de base pour le nom qualifié avec l'espace de noms en lecture seule.
Set Objet_NodeList = Objet_CDATA.childNodes
contient une liste de noeuds contenant les enfants en lecture seule.
Chaîne = Objet_CDATA.data
contient les données du noeud CDATA, en lecture et écriture.
Valeur = Objet_CDATA.dataType
indique le type de données pour ce noeud en lecture et écriture.
Set Objet_Node = Objet_CDATA.definition
retourne la définition d'un noeud dans le DTD ou le schéma en lecture seule.
Set Objet_Node = Objet_CDATA.firstChild
contient le premier enfant de ce noeud en lecture seule.
Set Objet_Node = Objet_CDATA.lastChild
retourne le dernier noeud enfant en lecture seule.
Valeur = Objet_CDATA.length
spécifie la longueur, en caractères des données, en lecture seule.
Chaîne = Objet_CDATA.namespaceURI
retourne l'URI (Uniform Resource Identifier) pour l'espace de noms en lecture seule.
Set Objet_Node = Objet_CDATA.nextSibling
contient le frère suivant de ce noeud dans la liste d'enfants des parents en lecture seule.
Chaîne = Objet_CDATA.nodeName
contient le nom qualifié de l'élément, l'attribut, la référence d'entité ou une chaîne de caractères fixée pour d'autres types de noeud en lecture seule.
Valeur = Objet_CDATA.nodeType
spécifie le type de noeud XML DOM qui détermine des valeurs valides et si le noeud peut avoir des noeuds enfants en lecture seule.
Valeur = Objet_CDATA.nodeTypedValue
contient la valeur de ce noeud exprimée dans son type de donnée défini en lecture et écriture.
Chaîne = Objet_CDATA.nodeTypeString
retourne le type de noeud dans une forme de chaîne de caractères en lecture seule.
Valeur = Objet_CDATA.nodeValue
contient le texte associé avec le noeud en lecture et écriture.
Set Objet_Document = Objet_CDATA.ownerDocument
retourne la racine du document qui contient ce noeud en lecture seule.
Set Objet_Node = Objet_CDATA.parentNode
contient le noeud parent en lecture seule.
True | False = Objet_CDATA.parsed
contient la valeur True si le noeud et tous ses descendants ont été analysées et instanciées, ou False si n'importe quels noeuds restent à être analysées en lecture seule.
Valeur = Objet_CDATA.prefix
retourne le préfixe d'espace de noms en lecture seule.
Set Objet_Node = Objet_CDATA.previousSibling
contient le frère gauche de ce noeud en lecture seule.
True | False = Objet_CDATA.specified
indique si le noeud est explicitement spécifié ou dérivé d'une valeur par défaut dans le DTD ou le schéma en lecture seule.
Chaîne = Objet_CDATA.text
contient le contenu textuel du noeud et de sa sous-arborescence en lecture et écriture.
Valeur = Objet_CDATA.xml
contient la représentation XML du noeud et de tous ses descendants en lecture seule.
Les Méthodes
Méthode
Description
Set Objet_Node = Objet_CDATA.appendChild(Nouvel_Enfant)
ajoute un nouvel enfant comme le dernier enfant de ce noeud.
Objet_CDATA.appendData(Chaîne)
ajoute la chaîne de caractères spécifiée aux données textuelles existantes.
Set Objet_Node = Objet_CDATA.cloneNode(Bool_Profondeur)
crée un nouveau noeud qui est un double exact de ce noeud.
Objet_CDATA.deleteData(Position, Nb_Caractères)
supprime la sous-chaîne de caractères à l'intérieur de données textuelles.
True | False = Objet_CDATA.hasChildNodes()
retourne True si le noeud a des enfants.
Set Objet_Node = Objet_CDATA.insertBefore(Nouvel_Enfant, Référence)
insère un noeud enfant à la gauche du noeud spécifié ou à la fin de la liste.
Objet_CDATA.insertData(Position)
insère la chaîne spécifiée à la position indiquée.
Set Objet_Node = Objet_CDATA.removeChild(Noeud_Enfant)
enlève le noeud enfant spécifié de la liste d'enfant et le retourne.
Set Objet_Node = Objet_CDATA.replaceChild(Nouvel_Enfant, Ancien_Enfant)
remplace l'ancien noeud enfant spécifié par le nouveau noeud enfant fourni dans le jeu d'enfants de ce noeud.
Objet_CDATA.replaceData(position_départ, nombre, Chaîne);
remplace le nombre spécifié de caractères à partir de la position indiquée, par la chaîne fournie en argument.
Set Objet_NodeList = Objet_CDATA.selectNodes(Expression_Pattern)
applique l'opération de mise en correspondance de modèles indiquée au contexte de ce noeud et retourne la liste de noeuds correspondants.
Set Objet_Node = Objet_CDATA.selectSingleNode(Chaîne_Requête)
applique l'opération de mise en correspondance de modèles indiquée au contexte de ce noeud et retourne la liste de premier noeud correspondant.
True | False = Objet_Comment.specified
indique si le noeud est explicitement spécifié ou dérivé d'une valeur par défaut dans le DTD ou le schéma en lecture seule.
Set Objet_Text = Objet_CDATA.splitText(Position)
découpe le texte du noeud à l'intérieur de deux noeuds textuels à la position spécifiée et insère le nouveau texte dans l'arborexcence comme un frère qui suit immédiatement le noeud.
Chaîne = Objet_CDATA.substringData(Position, Nb_Caractères)
récupère une sous-chaîne de caractères d'une chaîne complète à l'intervalle spécifié.
Chaîne = Objet_CDATA.transformNode(Objet_StyleSheet)
traite ce noeud et ses enfants utilisant la feuille de style de tranformation (XSLT) indiquée et retourne la transformation résultante.
Objet_CDATA.transformNodeToObject(Feuille_Style, Objet)
traite ce noeud et ses enfants utilisant la feuille de style de tranformation (XSLT) indiquée et retourne la transformation résultante dans l'objet fourni.
Exemple [voir]
<%
  Dim Objet_Document
  Dim racine, Objet_CDATA, Noeud_Frere

  Set Objet_Document = Server.CreateObject("MSXML2.DOMDocument")

  fichier = Server.MapPath("livre.xml")
  Objet_Document.async = false
  Objet_Document.load fichier
  Set racine = Objet_Document.documentElement

  Set Objet_Node = Objet_Document.selectSingleNode _
                          ("//livre[nom = 'ASP, ADO, and XML Complete']")
  Set Objet_CDATA = Objet_Document.createCDATASection(" " _
                 & "<p>Un livre de <b>Kurt Gagle</b>, auteur également de...</p>")
  Objet_Node.insertBefore Objet_CDATA, Objet_Node.firstChild

  Set Noeud_frere = Objet_Node.childNodes.item(1)

  Response.Write "<u>La section CDATA suivante a été ajoutée avant " _
                 & "le noeud <b>" & Noeud_Frere.NodeName _
                 & " (" & Noeud_Frere.text & ")</b> :</u>" _
                 & Objet_CDATA.text

  Set Objet_Node = Nothing
  Set Noeud_Frere = Nothing

  Set Objet_Node = Objet_Document.selectSingleNode _
                          ("//livre[nom = ""XSLT Programmer's reference""]")

  Set Nouvel_Objet_CDATA = Objet_CDATA.cloneNode(true)

  Nouvel_Objet_CDATA.replaceData 19, 10, "Michael Kay"
  Nouvel_Objet_CDATA.replaceData 43, 12, "de nombreux ouvrages"

  Set Noeud_frere = Objet_Node.childNodes.item(1)

  Objet_Node.insertBefore Nouvel_Objet_CDATA, Objet_Node.firstChild

  Set Noeud_frere = Objet_Node.childNodes.item(1)

  Response.Write "<u>La section CDATA suivante a été ajoutée avant " _
                 & "le noeud <b>" & Noeud_Frere.NodeName _
                 & " (" & Noeud_Frere.text & ")</b> :</u>" _
                 & Nouvel_Objet_CDATA.text

  Objet_Document.save(Server.MapPath("livre.xml"))
%>