L'objet IXMLDOMProcessingInstruction représente une instruction de traitement dans laquelle une information spécifique pour le processeur XML est conservée dans le texte du document.

Un objet IXMLDOMProcessingInstruction est créé à partir de la méthode createProcessingInstruction de l'objet DOMDocument.

Set Objet_ProcessingInstruction = _
      Objet_Document.createProcessingInstruction(Nom, Contenu)

Le nom est une chaîne de caractères XML valide qui sera séparée du contenu par un espace blanc dans le noeud résultant.

<?Nom Contenu?>

Le contenu d'un tel noeud est constitué d'une expression textuelle représentant par exemple, un attribut et sa valeur associée ou une classe Java.

<?xml-stylesheet type="text/xsl" href="../style.xsl"?>

Une instruction de traitement est donc formée par un balisage particulier dans le document XML, soit une séquence de caractères <? pour indiquer sont commencement et une autre ?> pour la fin.

Une instruction de traitement est représentée par un type de noeud précis, en l'occurrence par la constante NODE_PROCESSING_INSTRUCTION possédant la valeur numérique 7 ou textuelle processinginstruction. Ainsi, ce noeud pourra être repéré dans une arborescence XML par la méthode nodeType ou nodeTypeString appliquée à l'objet nodal courant.

If Objet_Node.nodeType = 7 Then
  ...
End If

If Objet_Node.nodeTypeString = "processinginstruction" Then
  ...
End If
Les Propriétés
Propriété
Description
Set Objet_NamedNodeMap = Objet_ProcInst.attributes
contient la liste des attributs pour ce noeud en lecture seule.
Chaîne = Objet_ProcInst.baseName
retourne le nom de base pour le nom qualifié avec l'espace de noms en lecture seule.
Set Objet_NodeList = Objet_ProcInst.childNodes
contient une liste de noeuds contenant les enfants en lecture seule.
Valeur = Objet_ProcInst.dataType
indique le type de données pour ce noeud en lecture et écriture.
Set Objet_Node = Objet_ProcInst.definition
retourne la définition d'un noeud dans le DTD ou le schéma en lecture seule.
Set Objet_Node = Objet_ProcInst.firstChild
contient le premier enfant de ce noeud en lecture seule.
Set Objet_Node = Objet_ProcInst.lastChild
contient le dernier noeud enfant en lecture seule.
Chaîne = Objet_ProcInst.namespaceURI
retourne l'URI (Uniform Resource Identifier) pour l'espace de noms en lecture seule.
Set Objet_Node = Objet_ProcInst.nextSibling
contient le frère suivant de ce noeud dans la liste d'enfants des parents en lecture seule.
Chaîne = Objet_ProcInst.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.
Chaîne = Objet_ProcInst.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.
Set Objet_Valeur = Objet_ProcInst.nodeTypedValue
contient la valeur de ce noeud exprimée dans son type de donnée défini en lecture et écriture.
Chaîne = Objet_ProcInst.nodeTypeString
retourne le type de noeud dans une forme de chaîne de caractères en lecture seule.
Set Objet_Valeur = Objet_ProcInst.nodeValue
contient le texte associé avec le noeud en lecture et écriture.
Set Objet_Document = Objet_ProcInst.ownerDocument
retourne la racine du document qui contient ce noeud en lecture seule.
Set Objet_Node = Objet_ProcInst.parentNode
contient le noeud parent en lecture seule.
True | False = Objet_ProcInst.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_ProcInst.prefix
retourne le préfixe d'espace de noms en lecture seule.
Set Objet_Node = Objet_ProcInst.previousSibling
contient le frère gauche de ce noeud en lecture seule.
True | False = Objet_ProcInst.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_ProcInst.target
indique la cible, soit l'application à laquelle cette instruction detraitement est dirigé, en lecture seule.
Chaîne = Objet_ProcInst.text
contient le contenu textuel du noeud et de sa sous-arborescence en lecture et écriture.
Valeur = Objet_ProcInst.xml
contient la représentation XML du noeud et de tous ses descendants en lecture seule.
Les Méthodes
Méthode
Description
Objet_ProcInst.appendChild(Nouvel_Enfant)
ajoute un nouvel enfant comme le dernier enfant de ce noeud.
Set Objet_Node = Objet_ProcInst.cloneNode(Bool_Profondeur)
crée un nouveau noeud qui est un double exact de ce noeud.
True | False = Objet_ProcInst.hasChildNodes()
retourne True si le noeud a des enfants.
Set Objet_Node = Objet_ProcInst.insertBefore(Nouvel_Enfant, Référence)
insère un noeud enfant à la gauche du noeud spécifié ou à la fin de la liste.
Set Objet_Node = Objet_ProcInst.removeChild(Noeud_Enfant)
enlève le noeud enfant spécifié de la liste d'enfant et le retourne.
Set Objet_Node = Objet_ProcInst.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.
Set Objet_NodeList = Objet_ProcInst.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_ProcInst.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.
Chaîne = Objet_ProcInst.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_ProcInst.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, racine, noeud
  Dim Objet_ProcessingInstruction

  Set Objet_Document = Server.CreateObject("MSXML2.DOMDocument")
  Objet_Document.load(Server.MapPath("fichier.xml"))
  Set racine = Objet_Document.documentElement

  For Each noeud In Objet_Document.childNodes
    If noeud.nodeType = 7 AND noeud.nodeName = "xml" Then
      Response.Write "<h3>Une instruction de traitement a été trouvée " _
                    & (<i>" & noeud.nodeTypeString & "</i>) "</h3>"
      Response.Write "<?" & noeud.nodeName & " " & noeud.text & "?>"

      Exit For
    Else
      Response.Write "<h3>Aucune instruction de traitement n'a été trouvée.</h3>"

      Set Objet_ProcessingInstruction = _
              Objet_Document.createProcessingInstruction("xml", _
                              "version=""1.0"" encoding=""iso-8859-1""")

      Objet_Document.insertBefore Objet_ProcessingInstruction, racine

      Response.Write "<b><u>L'instruction de traitement suivante " _ 
                           & "a été ajoutée :</u></b><br>" _
                           & "<?" & Objet_ProcessingInstruction.nodeName & " " _
                           & Objet_ProcessingInstruction.text & "?>"
    End If
  Next

  Objet_Document.Save(Server.MapPath("fichier.xml"))

  Set Objet_Document = Nothing
%>