Compartir a través de


Recuperación ordenada de nodos por índice

El Modelo de objetos de documentos XML (DOM) de World Wide Web Consortium (W3C) también describe un NodeList, que tiene la capacidad de controlar una lista ordenada de nodos, en lugar del conjunto no ordenado controlado por XmlNamedNodeMap. NodeList en Microsoft .NET Framework se denomina XmlNodeList. Los métodos y propiedades que devuelven xmlNodeList son:

  • XmlNode.ChildNodes

  • XmlDocument.GetElementsByTagName

  • XmlElement.GetElementsByTagName

  • XmlNode.SelectNodes

XmlNodeList tiene una propiedad Count que se puede usar para escribir bucles para recorrer en iteración los nodos de XmlNodeList, como se muestra en el ejemplo de código siguiente:

Dim doc as XmlDocument = new XmlDocument()  
   doc.Load("books.xml")  
  
    ' Retrieve all book titles.  
    Dim root as XmlElement = doc.DocumentElement  
    Dim elemList as XmlNodeList = root.GetElementsByTagName("title")  
    Dim i as integer  
    for i=0  to elemList.Count-1  
        ' Display all book titles in the Node List.  
        Console.WriteLine(elemList.ItemOf(i).InnerXml)  
    next  
XmlDocument doc = new XmlDocument();  
doc.Load("books.xml");  
// Retrieve all book titles.  
XmlElement root = doc.DocumentElement;  
XmlNodeList elemList = root.GetElementsByTagName("title");  
for (int i=0; i < elemList.Count; i++)  
{
   // Display all book titles in the Node List.  
   Console.WriteLine(elemList[i].InnerXml);  
}

Además de la propiedad Count , hay un método GetEnumerator que proporciona una iteración de estilo sobre foreach la colección de nodos de XmlNodeList. En el ejemplo de código siguiente se muestra el uso de la foreach instrucción .

Dim doc As New XmlDocument()  
doc.Load("books.xml")  
  
' Get book titles.  
Dim root As XmlElement = doc.DocumentElement  
Dim elemList As XmlNodeList = root.GetElementsByTagName("title")  
Dim ienum As IEnumerator = elemList.GetEnumerator()  
' Loop over the XmlNodeList using the enumerator ienum
While ienum.MoveNext()  
    ' Display the book title.  
    Dim title As XmlNode = CType(ienum.Current, XmlNode)  
    Console.WriteLine(title.InnerText)  
End While  
{  
     XmlDocument doc = new XmlDocument();  
     doc.Load("books.xml");  
  
     // Get book titles.  
     XmlElement root = doc.DocumentElement;  
     XmlNodeList elemList = root.GetElementsByTagName("title");  
     IEnumerator ienum = elemList.GetEnumerator();
     // Loop over the XmlNodeList using the enumerator ienum
     while (ienum.MoveNext())  
     {  
          // Display the book title.  
           XmlNode title = (XmlNode) ienum.Current;  
           Console.WriteLine(title.InnerText);  
     }  
  }  

Para obtener más información sobre los métodos y propiedades disponibles en XmlNodeList, vea XmlNodeList.

Consulte también