Le chargement d'un document XML dans une page ASP à partir du modèle d'objet de document s'accomplit en créant tout d'abord une instance de l'objet DOM puis en utilisant la méthode de chargement load.

Dim Objet_Document
Set Objet_Document = _
                    Server.CreateObject("MSXML2.DOMDocument")
Objet_Document.load("Disque:\Chemin\Fichier.xml")

Le ProgID fournit en argument dans la méthode createObject fait appel par défaut à la version 3.0 du parseur MSXML. L'ajout d'un numéro de version à la fin de la chaîne de caractères permet d'appeler explicitement la version de MSXML désirée.

'Sollicitation de msxml4.dll (c:\winnt\system32\)
Set Objet_Document = _
                    Server.CreateObject("MSXML2.DOMDocument.4.0")

'Sollicitation de msxml3.dll (c:\winnt\system32\)
Set Objet_Document = _
                    Server.CreateObject("MSXML2.DOMDocument.3.0")

Par ailleurs, la méthode load retournant une valeur booléenne en fonction du déroulement du processus, peut être utilisée pour détecter un échec de chargement du fichier XML concerné et ainsi prévoir une procédure adaptée.

if Objet_Document.load("Disque:\Chemin\Fichier.xml") Then
  Response.Write "Le chargement s'est déroulé avec succès."
Else
  Response.Write "Un échec s'est produit lors du chargement."
End If

La méthode MapPath de l'objet ASP Server permet de résoudre un chemin relatif en une adresse physique complète sur le serveur.

fichier = Server.MapPath("../fichier.xml")
Objet_Document.load(fichier)

Par défaut, le chargement du fichier XML s'effectue de manière asynchrone. Cela permet de vérifier l'état de l'instruction de chargement load. La méthode readyState associée à un événement onreadystatechange peut alors retourner une valeur enumReadyState reflétant l'état du processus de chargement d'un fichier XML.

Objet_Document.onreadystatechange = Gestionnaire_Evénement;
Etat = Objet_Document.readyState;

Si aucune fonction de ce genre n'est nécessaire, il est possible de ne pas conserver un chargement asynchrone et partant de fixer la propriété async à la valeur False. Mais dans ce cas, l'analyseur XML ne rend la main que lorsque le document est complétement chargé et analysé et partant disponible pour la suite du programme.

Objet_Document.async = False

Par ailleurs, le fichier est chargé avec une propriété validateOnParse fixée par défaut à True. Elle est utilisée pour l'analyse du document XML par rapport à sa définition de type de document (DTD) ou à son schéma. Si cette fonctionnalité n'est pas obligatoire pour le document à traiter, la valeur False peut être attribuée à la propriété validateOnParse afin d'éviter l'opération de validation.

Objet_Document.validateOnParse = True (Par défaut) | False

La méthode loadXML permet le chargement d'un document XML exprimée sous la forme d'une chaîne de caractères bien formé.

Objet_Document.loadXML_
                  ("<?xml version=""1.0""?><racine>...</racine>")

Suite à la manipulation d'une arborescence XML, il est nécessaire de conserver les modifications apportées au document.

La méthode save permet de sauvegarder un document XML dans un fichier au format adéquat.

Objet_Document.save(Nom_Fichier)

Il est possible d'enregistrer l'objet DOMDocument dans un fichier XML, dans l'objet ASP Response, un autre objet DOMDocument ou dans tout autres objets supportant la persistance.

Objet_Document.save(Response)

A la fin du traîtement de l'objet DOMDocument, la référence doit être libérée dans VBScript par une affectation présentée ci-dessous.

Set Objet_Document = Nothing
Exemple [voir]
<html>
  <head>
    <script language="JScript">
      var Objet_Document, Objet_Erreur;
      function chargement()
      {
        Objet_Document = new ActiveXObject("Msxml2.DOMDocument");
        Objet_Erreur = Objet_Document.parseError;
        Objet_Document.onreadystatechange = affiche_etat;
        Objet_Document.async = false
        Objet_Document.validateOnParse = false
        Objet_Document.load(adresse.value);
        return;
      }

      function affiche_etat()
      {
        var Etat;
        Etat = Objet_Document.readyState;
        if (Etat == 0)
         { affichage.innerHTML += "Le chargement n'a pas commencé"
                                            + " (readyState = " + Etat + ").<br>"; }
        if (Etat == 1)
         { affichage.innerHTML += "Le chargement est en cours"
                                            + " (readyState = " + Etat + ").<br>"; }
        if (Etat == 2)
         { affichage.innerHTML += "Le chargement du fichier est terminé"
                                            + " (readyState = " + Etat + ").<br>"; }
        if (Etat == 3)
         { affichage.innerHTML += "Le fichier est en cours d'analyse"
                                            + " (readyState = " + Etat + ").<br>"; }
        if (Etat == 4)
        {
          if (Objet_Erreur.errorCode == 0)
          {
            affichage.innerHTML += "Le chargement et l'analyse sont terminés"
                                             + " (readyState = " + Etat + ").<br>";
                                             + "<h2>Opération réussie !<h2>"
          }
          else
          {
            affichage.innerHTML += "<h2>Le chargement a échoué.</h2>"
                                            + "<br>Une erreur d'analyse s'est produite."
                                            + "<br>Code : " + Objet_Erreur.code
                                            + "<br>Raison : " + Objet_Erreur.reason
                                            + "<br>Texte : " + Objet_Erreur.srcText
                                            + "<br>URL : " + Objet_Erreur.url
                                            + "<br>Position : " + Objet_Erreur.filePos
                                            + "<br>Ligne : " + Objet_Erreur.line
                                            + "<br>Colonne : " + Objet_Erreur.linePos;
          }
        }
        return;
      }
    </script>
  </head>
  <body>
    Adresse :
    <input type="text" size="80" id="adresse"
                value="http://laltruiste.com/coursdomxml/exemples/logitheque.xml">
    <input type="button" value="Chargement" onclick="jscript:chargement()">
    <hr>
    <div id="resultat" style="font-size:12pt; font-weight:bold; color:blue">
    </div>
  </body>
</html>