L'objet Document représente la totalité d'un document HTML ou XML.
La création de l'objet DOMDocument s'effectue à partir de l'instruction suivante :
Set objet_Document = _ Server.CreateObject("Msxml2.DOMDocument") Set objet_Document = _ Server.CreateObject("F6D90F11-9C73-11D3-B32E-00C04F990BB4") |
La première instruction utilise un ProgID d'une version indépendante et la seconde un ClassID.
L'objet DOMDocument peut être utilisé soit en un modèle d'unités d'exécution libres ou d'unités d'exécution louées.
L'objet FreeThreadedDOMDocument est à utiliser s'il est nécessaire de le conserver à l'intérieur de la portée d'une session ou d'une application.
Le comportement des deux modèles est identique. Toutefois, le modèle de location offre de meilleures performances car l'analyseur ne nécessite pas de gérer des accès simultanés parmi les unités d'exécution. Il n'est pas possible de combiner des noeuds ou des documents qui sont créés en utilisant des modèles différents de partage d'unités d'exécution.
Set objet_Document = _ Server.CreateObject("Msxml2.FreeThreadedDOMDocument") Set objet_Document = _ Server.CreateObject("F6D90F12-9C73-11D3-B32E-00C04F990BB4") |
Tous les autres objets d'un document XML découlant du document comme les noeuds enfants sont créés et accédés par l'objet DOMDocument.
Cet objet contient de nombreuses méthodes et propriétés permettant notamment de créer, modifier ou gérer tous les types de noeuds d'extraitre leur contenu ou valeur, ainsi que de travailler en coordination avec les feuilles de style XSL ou XSL-Transformation.
Les PropriétésPropriété |
---|
Description |
Objet_Document.async |
indique si le télechargement asychrone est permis en lecture et écriture. |
Set Objet_NamedNodeMap = Objet_Document.attributes |
contient la liste des attributs pour ce noeud en lecture seule. |
Chaîne = Objet_Document.baseName |
retourne le nom de base pour le nom qualifié avec l'espace de noms en lecture seule. |
Set Objet_NodeList = Objet_Document.childNodes |
contient une liste de noeuds contenant les enfants en lecture seule. |
Valeur = Objet_Document.dataType |
indique le type de données pour ce noeud en lecture et écriture. |
Set Objet_Node = Objet_Document.definition |
retourne la définition d'un noeud dans le DTD ou le schéma en lecture seule. |
Set Objet_DocumentType = Objet_Document.doctype |
contient le noeud de type de document qui spécifie le DTD pour ce document en lecture seule. |
Set Objet_Element = Objet_Document.documentElement |
contient l'élément racine du document en lecture et écriture. |
Set Objet_Node = Objet_Document.firstChild |
contient le premier enfant de ce noeud en lecture seule. |
Set Objet_Implementation = Objet_Document.implementation |
contient l'objet IXMLDOMImplementation pour ce document en lecture seule. |
Set Objet_Node = Objet_Document.lastChild |
retourne le dernier noeud enfant en lecture seule. |
Chaîne = Objet_Document.namespaceURI |
retourne l'URI (Uniform Resource Identifier) pour l'espace de noms en lecture seule. |
Set Objet_Node = Objet_Document.nextSibling |
contient le frère suivant de ce noeud dans la liste d'enfants des parents en lecture seule. |
Chaîne = Objet_Document.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_Document.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_Document.nodeTypedValue |
contient la valeur de ce noeud exprimée dans son type de donnée défini en lecture et écriture. |
Chaîne = Objet_Document.nodeTypeString |
retourne le type de noeud dans une forme de chaîne de caractères en lecture seule. |
Valeur = Objet_Document.nodeValue |
contient le texte associé avec le noeud en lecture et écriture. |
Set Objet_Document.ondataavailable = Gestionnaire_Evénement |
spécifie le gestionnaire d'événements pour ondataavailable en lecture et écriture. |
Set Objet_Document.onreadystatechange= Gestionnaire_Evénement |
spécifie le gestionnaire d'événement pour être appelé lorsque la propriété readyState se modifie en lecture et écriture. |
Set Objet_Document.ontransformnode = Gestionnaire_Evénement |
spécifie le gestionnaire d'événement pour ontransformnode en lecture et écriture. |
Set Objet_Document = Objet_Document.ownerDocument |
retourne la racine du document qui contient ce noeud en lecture seule. |
Set Objet_Node = Objet_Document.parentNode |
contient le noeud parent en lecture seule. |
True | False = Objet_Document.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. |
Set Objet_Error = Objet_Document.parseError |
retourne un objet IXMLDOMParseError qui contient des informations à propos de la dernière erreur analysée en lecture seule. |
Valeur = Objet_Document.prefix |
retourne le préfixe d'espace de noms en lecture seule. |
True | False = Objet_Document.preserveWhiteSpace |
contient True si le traitement préserve les espaces blancs, sinon False en lecture et écriture. |
Set Objet_Node = Objet_Document.previousSibling |
contient le frère gauche de ce noeud en lecture seule. |
LOADING (1) | LOADED (2) | INTERACTIVE (3) | COMPLETED (4) = Objet_Document.readyState |
indique l'état courant du document XML en lecture seule. |
True | False = Objet_Document.resolveExternals |
indique si les définitions externes doivent être résolues en temps d'analyse, indépendantes de validation en lecture et écriture. |
True | False = Objet_Document.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_Document.text |
contient le contenu textuel du noeud et de sa sous-arborescence en lecture et écriture. |
URL = Objet_Document.url |
retourne l'URL canonique pour le dernier document XML chargé en lecture seule. |
True | False = Objet_Document.validateOnParse |
indique si l'analyseur doit valider ce document en lecture et écriture. |
Valeur = Objet_Document.xml |
contient la représentation XML du noeud et de tous ses descendants en lecture seule. |
Méthode |
---|
Description |
Objet_Document.abort() |
annule le téléchargement asynchrone en cours. |
Set Objet_Node = Objet_Document.appendChild(Nouvel_Enfant) |
ajoute un nouvel enfant comme le dernier enfant de ce noeud. |
Set Objet_Node = Objet_Document.cloneNode(Bool_Profondeur) |
crée un nouveau noeud qui est un double exact de ce noeud. |
Set Objet_Attribute = Objet_Document.createAttribute(Nom) |
crée un nouvel attribut avec le nom spécifié. |
Set Objet_CDATASection = Objet_Document.createCDATASection(Données) |
crée un noeud CDATA qui contient les données fournies. |
Set Objet_Comment = Objet_Document.createComment(Données) |
crée un noeud commentaire qui contient les données fournies. |
Set Objet_DocumentFragment = Objet_Document.createDocumentFragment(DocFragment) |
crée un objet vide DocumentFragment. |
Set Objet_Element = Objet_Document.createElement(nom) |
crée un noeud élément utilisant le nom spécifié. |
Set Objet_Node = Objet_Document.createEntityReference(name) |
crée une nouvel objet EntityReference. |
Set Objet_Node = Objet_Document.createNode(Type, Nom, URI_Espace_Nom) |
crée un noeud utilisant le type, le nom et l'espace de nom fournis. |
Set Objet_ProcessingInstruction = Objet_Document.createProcessingInstruction(Cible, Données) |
crée un noeud instruction de traitement qui contient la cible et les données spécifiées. |
Set Objet_Text = Objet_Document.createTextNode(Données) |
crée un noeud textuel qui contient les données spécifiées. |
Set Objet_NodeList = Objet_Document.getElementsByTagName(Nom) |
retourne une collection d'éléments qui porteront le nom indiqué. |
True | False = Objet_Document.hasChildNodes() |
retourne True si le noeud a des enfants. |
Set Objet_Node = Objet_Document.insertBefore(Nouvel_Enfant, Référence) |
insère un noeud enfant à la gauche du noeud spécifié ou à la fin de la liste. |
True | False = Objet_Document.load(Source_XML) |
charge un document XML à partir de la localisation spécifiée. |
True | False = Objet_Document.loadXML(Chaîne_XML) |
charge un document XML utilisant la chaîne de caractères spécifiée. |
Set Objet_Node = Objet_Document.nodeFromID(Chaîne_ID) |
retourne le noeud duquel l'attribut ID correspond à la valeur fournie. |
Set Objet_Node = Objet_Document.removeChild(Noeud_Enfant) |
enlève le noeud enfant spécifié de la liste d'enfant et le retourne. |
Set Objet_Node = Objet_Document.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_Document.save(Destination) |
sauvegarde un docment XML vers la localisation spécifiée. |
Set Objet_NodeList = Objet_Document.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_Document.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_Document.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_Document.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. |
Evénement |
---|
Description |
Objet_Document.ondataavailable = Gestionnaire_Evénément |
indique que les données du document XML sont disponibles. |
Objet_Document.onreadystatechange = Gestionnaire_Evénément |
indique lorsque la propriété readyState change. |
True | False = ontransformnode(Noeud_XSL, Noeud_XML) |
indique lorsque le traitement de transformation doit continuer ou s'arrêter. |
<% Const OpenFileForReading = 1 Dim obj_fso, Objet_Document, obj_info,obj_logiciel, racine Dim obj_nom, obj_commentaire, obj_adresse, obj_editeur Dim obj_systeme_exploitation, obj_monnaie, obj_prix Dim nom_txt, commentaire_txt, adresse_txt, editeur_txt Dim systeme_exploitation_txt, monnaie_txt, prix_txt Dim nom, commentaire, adresse, editeur, systeme_exploitation Dim monnaie, prix, tableau, i, delimiteur i = 1 Set obj_fso = Server.CreateObject("Scripting.FileSystemObject") fichier = Server.MapPath("informations.txt") Set obj_info = obj_fso.OpenTextFile(fichier, OpenFileForReading) Set Objet_Document = Server.CreateObject("MSXML2.DOMDocument") Set racine = Objet_Document.createElement("liste") Objet_Document.appendChild racine delimiteur = "{" Do While Not obj_info.AtEndOfStream ligne = obj_info.ReadLine tableau = Split(ligne, delimiteur, -1, 1) nom = tableau(0) commentaire = tableau(1) adresse = tableau(2) editeur = tableau(3) langue = tableau(4) systeme_exploitation = tableau(5) monnaie = tableau(6) prix = tableau(7) Response.Write "<b>Ligne n°" & i & "</b><br>---------<br>" & nom _ & "<br>" & commentaire & "<br>" & adresse & "<br>" _ & editeur & "<br>" & langue & "<br>" _ & systeme_exploitation & "<br>" & monnaie _ & " " & prix & "<br><br>" Set obj_logiciel = Objet_Document.createElement("logiciel") obj_logiciel.setAttribute "langue", langue obj_logiciel.setAttribute "systeme_exploitation", systeme_exploitation Set obj_nom = Objet_Document.createElement("nom") Set nom_txt = Objet_Document.createTextNode(nom) Set obj_commentaire = Objet_Document.createElement("commentaire") Set commentaire_txt = Objet_Document.createTextNode(commentaire) Set obj_editeur = Objet_Document.createElement("editeur") Set editeur_txt = Objet_Document.createTextNode(editeur) obj_editeur.setAttribute "adresse", adresse Set obj_prix = Objet_Document.createElement("prix") Set prix_txt = Objet_Document.createTextNode(prix) obj_prix.setAttribute "monnaie", monnaie obj_nom.appendChild nom_txt obj_commentaire.appendChild commentaire_txt obj_editeur.appendChild editeur_txt obj_prix.appendChild prix_txt obj_logiciel.appendChild obj_nom obj_logiciel.appendChild obj_commentaire obj_logiciel.appendChild obj_editeur obj_logiciel.appendChild obj_prix racine.appendChild obj_logiciel i = i + 1 Loop Objet_Document.save(Server.MapPath("logiciel.xml")) Response.Write "Le fichier de statistique au format XML" _ & " est disponible à l'adresse suivante :<br>" _ & Server.MapPath("logiciel.xml") obj_info.close Set obj_info = Nothing %> |