Leer en inglés

Compartir a través de


XPathNodeIterator Clase

Definición

Proporciona un iterador por un conjunto de nodos seleccionado.

C#
public abstract class XPathNodeIterator : ICloneable, System.Collections.IEnumerable
C#
public abstract class XPathNodeIterator : System.Collections.IEnumerable
C#
public abstract class XPathNodeIterator : ICloneable
Herencia
XPathNodeIterator
Implementaciones

Ejemplos

En el ejemplo siguiente se usa el Select método de la XPathNavigator clase para seleccionar un conjunto de nodos mediante la XPathNodeIterator clase .

C#
XPathDocument document = new XPathDocument("books.xml");
XPathNavigator navigator = document.CreateNavigator();

XPathNodeIterator nodes = navigator.Select("/bookstore/book");
nodes.MoveNext();
XPathNavigator nodesNavigator = nodes.Current;

XPathNodeIterator nodesText = nodesNavigator.SelectDescendants(XPathNodeType.Text, false);

while (nodesText.MoveNext())
    Console.WriteLine(nodesText.Current.Value);

En el ejemplo se toma como entrada el archivo books.xml.

XML
<?xml version="1.0" encoding="utf-8" ?>   
<bookstore>  
    <book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">  
        <title>The Autobiography of Benjamin Franklin</title>  
        <author>  
            <first-name>Benjamin</first-name>  
            <last-name>Franklin</last-name>  
        </author>  
        <price>8.99</price>  
    </book>  
    <book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">  
        <title>The Confidence Man</title>  
        <author>  
            <first-name>Herman</first-name>  
            <last-name>Melville</last-name>  
        </author>  
        <price>11.99</price>  
    </book>  
    <book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">  
        <title>The Gorgias</title>  
        <author>  
            <name>Plato</name>  
        </author>  
        <price>9.99</price>  
    </book>  
</bookstore>  

Comentarios

Un XPathNodeIterator objeto devuelto por la XPathNavigator clase no se coloca en el primer nodo de un conjunto seleccionado de nodos. Se debe realizar una llamada al MoveNext método de la XPathNodeIterator clase para colocar el XPathNodeIterator objeto en el primer nodo del conjunto seleccionado de nodos.

Al usar XPathNodeIterator, si edita el nodo actual o cualquiera de sus antecesores, se pierde la posición actual. Si desea editar una serie de nodos que ha seleccionado, cree una XPathNavigator matriz, copie todos los nodos de en XPathNodeIterator la matriz y, a continuación, recorra en iteración la matriz y modifique los nodos.

Hay dos maneras de iterar por una XPathNavigator colección mediante la XPathNodeIterator clase .

Una manera es usar el MoveNext método y, a continuación, llamar Current a para obtener la instancia actual XPathNavigator , como en el ejemplo siguiente:

C#
while (nodeIterator.MoveNext())
{
    XPathNavigator n = nodeIterator.Current;
    Console.WriteLine(n.LocalName);
}

Otra manera es usar un foreach bucle para llamar al GetEnumerator método y usar la interfaz devuelta IEnumerator para enumerar los nodos, como en el ejemplo siguiente:

C#
foreach (XPathNavigator n in nodeIterator)
    Console.WriteLine(n.LocalName);

Debe usar MoveNext y Current o usar GetEnumerator. La combinación de estos dos enfoques puede provocar resultados inesperados. Por ejemplo, si se llama primero al MoveNext método y, a continuación, se llama al GetEnumerator método en el foreach bucle , el foreach bucle no comenzará a enumerar los resultados desde el principio de la colección, sino desde la posición después del Current método .

Notas a los implementadores

Al heredar de la XPathNodeIterator clase , debe invalidar los siguientes miembros:

Constructores

XPathNodeIterator()

Inicializa una nueva instancia de la clase XPathNodeIterator.

Propiedades

Count

Obtiene el índice del último nodo del conjunto de nodos seleccionado.

Current

Cuando se reemplaza en una clase derivada, obtiene el objeto XPathNavigator para este XPathNodeIterator, situado en el nodo de contexto actual.

CurrentPosition

Cuando se reemplaza en una clase derivada, se obtiene el índice de la posición actual en el conjunto de nodos seleccionado.

Métodos

Clone()

Cuando se reemplaza en una clase derivada, devuelve un clon de este objeto XPathNodeIterator.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetEnumerator()

Devuelve un objeto IEnumerator para recorrer en iteración el conjunto de nodos seleccionado.

GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
MoveNext()

Cuando se reemplaza en una clase derivada, desplaza el objeto XPathNavigator devuelto por la propiedad Current al siguiente nodo del conjunto de nodos seleccionado.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

ICloneable.Clone()

Crea un nuevo objeto copiado de la instancia actual.

Métodos de extensión

Cast<TResult>(IEnumerable)

Convierte los elementos de IEnumerable en el tipo especificado.

OfType<TResult>(IEnumerable)

Filtra los elementos de IEnumerable en función de un tipo especificado.

AsParallel(IEnumerable)

Habilita la paralelización de una consulta.

AsQueryable(IEnumerable)

Convierte una interfaz IEnumerable en IQueryable.

Se aplica a

Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1