L'objet IXMLDOMAttribute représente un attribut de l'objet IXMLDOMElement. Les valeurs valides et par défaut pour les attributs sont définies dans un DTD (Document Type Definition) ou un schéma.
La création d'un attribut s'effectue par l'intermédiaire de la méthode createAttribute de l'objet DOMDocument.
set Objet_Attribute = Objet_DOMDocument.createAttribute(Nom)
L'affectation d'une valeur à un attribut se fait au moyen de la méthode appendChild ajoutant un noeud textuel créé auparavant par la méthode createTextNode de l'objet DOMDocument.
Set valeur_attribut = Objet_DOMDocument.createTextNode(valeur) Objet_Attribute.appendChild valeur_attribut
Les attributs sont affectés à un élément par l'intermédiaire de la méthode setAttributeNode lorsqu'il s'agît d'un noeud Attribute existant, sinon un autre méthode setAttribute de l'objet IXMLDOMElement permet de créer directement un attribut avec sa valeur.
objet_DOMElement.setAttributeNode(Noeud_attribut) objet_DOMElement.setAttribute nom_attribut, valeur_attribut
Les noeuds d'attribut ne peuvent être les enfants immédiats de l'objet de IXMLDOMDocumentFragment. Toutefois, ils peuvent être associés aux noeuds d'élément qui sont des enfants du noeud IXMLDOMDocumentFragment.
La relation entre la valeur et les membres spécifiés peut être résumée comme suit :
Dans XML, la valeur d'un attribut est représentée par les noeuds enfants du noeud d'attribut car la valeur peut contenir des références d'entité.
Ainsi les attributs qui contiennent des références d'entité auront une liste d'enfants contenant les noeuds textuels et les noeuds de référence d'entité. De plus, car le type d'attribut peut être inconnu, ils n'ont pas signalé de valeurs d'attribut.
| Propriété |
|---|
| Description |
| Chaîne = Objet_Attribute.baseName |
| retourne le nom de base pour le nom qualifié avec l'espace de noms en lecture seule. |
| Set Objet_NodeList = Objet_Attribute.childNodes |
| contient une liste de noeuds contenant les enfants en lecture seule. |
| Valeur = Objet_Attribute.dataType |
| indique le type de données pour ce noeud en lecture et écriture. |
| Set Objet_Node = Objet_Attribute.definition |
| retourne la définition d'un noeud dans le DTD ou le schéma en lecture seule. |
| Set Objet_Node = Objet_Attribute.firstChild |
| contient le premier enfant de ce noeud en lecture seule. |
| Set Objet_Node = Objet_Attribute.lastChild |
| contient le dernier noeud enfant en lecture seule. |
| Set Objet_Implementation = Objet_Attribute.implementation |
| contient l'objet IXMLDOMImplementation pour ce document en lecture seule. |
| Set Objet_Node = Objet_Attribute.lastChild |
| retourne le dernier noeud enfant en lecture seule. |
| Chaîne = Objet_Attribute.name |
| contient le nom de l'attribut, en lecture seule. |
| Chaîne = Objet_Attribute.namespaceURI |
| retourne l'URI (Uniform Resource Identifier) pour l'espace de noms en lecture seule. |
| Set Objet_Node = Objet_Attribute.nextSibling |
| contient le frère suivant de ce noeud dans la liste d'enfants des parents en lecture seule. |
| Chaîne = Objet_Attribute.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_Attribute.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_Attribute.nodeTypedValue |
| contient la valeur de ce noeud exprimée dans son type de donnée défini en lecture et écriture. |
| Chaîne = Objet_Attribute.nodeTypeString |
| retourne le type de noeud dans une forme de chaîne de caractères en lecture seule. |
| Valeur = Objet_Attribute.nodeValue |
| contient le texte associé avec le noeud en lecture et écriture. |
| Set Objet_Document = Objet_Attribute.ownerDocument |
| retourne la racine du document qui contient ce noeud en lecture seule. |
| Set Objet_Node = Objet_Attribute.parentNode |
| contient le noeud parent en lecture seule. |
| True | False = Objet_Attribute.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_Attribute.prefix |
| retourne le préfixe d'espace de noms en lecture seule. |
| Set Objet_Node = Objet_Attribute.previousSibling |
| contient le frère gauche de ce noeud en lecture seule. |
| True | False = Objet_Attribute.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_Attribute.text |
| contient le contenu textuel du noeud et de sa sous-arborescence en lecture et écriture. |
| Valeur = Objet_Attribute.value |
| contient la valeur de l'attribut, en lecture et écriture. |
| Valeur = Objet_Attribute.xml |
| contient la représentation XML du noeud et de tous ses descendants en lecture seule. |
| Méthode |
|---|
| Description |
| Set Objet_Node = Objet_Attribute.appendChild(Nouvel_Enfant) |
| ajoute un nouvel enfant comme le dernier enfant de ce noeud. |
| Set Objet_Node = Objet_Attribute.cloneNode(Bool_Profondeur) |
| crée un nouveau noeud qui est un double exact de ce noeud. |
| True | False = Objet_Attribute.hasChildNodes() |
| retourne True si le noeud a des enfants. |
| Set Objet_Node = Objet_Attribute.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_Attribute.removeChild(Noeud_Enfant) |
| enlève le noeud enfant spécifié de la liste d'enfant et le retourne. |
| Set Objet_Node = Objet_Attribute.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_Attribute.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_Attribute.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_Attribute.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_Attribute.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. |
<%
Const OpenFileForReading = 1
Dim obj_fso, obj_dom, obj_log, racine
Dim obj_client, obj_document, obj_protocole, obj_code, obj_methode
Dim document_txt, protocole_txt, code_txt, methode_txt
Dim adresse_attr, adresse_txt, poids_attr, poids_txt
Dim adresse_ip, methode, document, protocole, code, poids
Dim tableau, elt_adresse, i
i = 1
Set obj_fso = Server.CreateObject("Scripting.FileSystemObject")
fichier = Server.MapPath("fichier_log.txt")
Set obj_log = obj_fso.OpenTextFile(fichier, OpenFileForReading)
Set obj_dom = Server.CreateObject("MSXML2.DOMDocument")
Set racine = obj_dom.createElement("statistique")
obj_dom.appendChild racine
Do While Not obj_log.AtEndOfStream
ligne = obj_log.ReadLine
tableau = Split(ligne, " ", -1, 1)
elt_adresse = Split(tableau(3), ",", -1, 1)
adresse_ip = tableau(0)
methode = Right(elt_adresse(0), Len(elt_adresse(0)) - 1)
document = elt_adresse(1)
protocole = Left(elt_adresse(2), Len(elt_adresse(2)) - 1)
code = tableau(4)
poids = tableau(5)
Set obj_client = obj_dom.createElement("client")
Set adresse_attr = obj_dom.createAttribute("adresse_ip")
Set adresse_txt = obj_dom.createTextNode(adresse_ip)
obj_client.setAttributeNode(adresse_attr)
Set obj_document = obj_dom.createElement("document")
Set document_txt = obj_dom.createTextNode(document)
Set poids_attr = obj_dom.createAttribute("poids")
Set poids_txt = obj_dom.createTextNode(poids)
obj_document.setAttributeNode(poids_attr)
Set obj_protocole = obj_dom.createElement("protocole")
Set protocole_txt = obj_dom.createTextNode(protocole)
Set obj_code = obj_dom.createElement("code")
Set code_txt = obj_dom.createTextNode(code)
Set obj_methode = obj_dom.createElement("methode")
Set methode_txt = obj_dom.createTextNode(methode)
poids_attr.appendChild poids_txt
adresse_attr.appendChild adresse_txt
obj_document.appendChild document_txt
obj_protocole.appendChild protocole_txt
obj_code.appendChild code_txt
obj_methode.appendChild methode_txt
obj_client.appendChild obj_document
obj_client.appendChild obj_protocole
obj_client.appendChild obj_code
obj_client.appendChild obj_methode
racine.appendChild obj_client
i = i + 1
Loop
obj_dom.save(Server.MapPath("fichier_log.xml"))
obj_log.close
Set obj_log = Nothing
%> |