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.

For i = 0 To Objet_NodeList.length - 1
  ...
Next
For Each Objet_Node In Objet_NodeList
  ...
Next
Les Propriétés
Propriété
Description
Nombre = Objet_NodeList.length
indique le nombre d'items dans la collection en lecture seule.
Les Méthodes
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).
Exemple [voir]
<%
  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
%>