L'objet IXMLDOMNodeList représente une liste de noeuds et supporte l'itération par l'intermédaire d'une collection active et en plus d'un accès indexé.
Les listes de noeuds peuvent être obtenues en utilisant la méthode getElementsByTagName appliquées à l'objet DOMDocument.
Objet_NodeList = _ Objet_Document.getElementsByTagName(nom)
Les méthodes childNodes et selectNodes de l'objet IXMLDOMNode sont également capables de retourner une liste de noeuds.
Objet_NodeList = Objet_Node.childNodes Objet_NodeList = Objet_Node.selectNodes(expression_XPath)
Une collection IXMLDOMNodeList est active, c'est-à-dire, que l'ajout ou le déplacement de noeuds et les modifications à l'intérieur des noeuds, sont immédiatement répercutés dans la collection. En conséquence, deux requêtes successives sur des membres de la collection utilisant le même index, retournent deux items différents, dépendant des changements sur la collection.
En outre, les modifications sur les objets nodaux sont immédiatement disponibles dans le noeud obtenu à partir de la liste.
La collection IXMLDOMNodeList peut être parcouru par l'intermédiaire d'une bouble For.
Les PropriétésFor i = 0 To Objet_NodeList.length - 1 ... Next For Each Objet_Node In Objet_NodeList ... Next
Propriété |
---|
Description |
Nombre = Objet_NodeList.length |
indique le nombre d'items dans la collection en lecture seule. |
Méthode |
---|
Description |
Objet_Node = Objet_NodeList.item(Index) |
autorise l'accès aléatoire à des noeuds individuels à l'intérieur d'une collection, en lecture seule. |
Objet_Node = Objet_NodeList.nextNode() |
retourne le prochain noeud dans la collection. |
Objet_NodeList.reset() |
réinitialise le moteur d'itération (iterator). |
<% Dim Objet_Document Dim Objet_NodeList Dim noeud, resultat Set Objet_Document = Server.CreateObject("MSXML2.DOMDocument") Objet_Document.async = false fichier = Server.MapPath("logitheque.xml") Objet_Document.load fichier If Objet_Document.parseError.errorCode <> 0 Then Response.Write "Une erreur s'est produite " _ & "lors de l'analyse du fichier !" Else Set Objet_NodeList = Objet_Document.getElementsByTagName("logiciel") For i = 0 To Objet_NodeList.length - 1 set noeud = Objet_NodeList.item(i) resultat = resultat & "<tr><td><b>" _ & noeud.attributes.item(0).nodeValue _ & "</b></td><td> : " _ & noeud.firstchild.text & "</td></tr>" Next Response.Write "<h3>La liste comporte " & Objet_NodeList.length _ & " noeuds.</h3><hr><table><tr><th>Code</th>" _ & "<th>Nom</th></tr>" & resultat & "</table>" End If Set Objet_Document = Nothing %> |