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
%> |