XPathNodeIterator Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Proporciona un iterador sobre un conjunto seleccionado de nodos.
public ref class XPathNodeIterator abstract : ICloneable, System::Collections::IEnumerable
public ref class XPathNodeIterator abstract : System::Collections::IEnumerable
public ref class XPathNodeIterator abstract : ICloneable
public abstract class XPathNodeIterator : ICloneable, System.Collections.IEnumerable
public abstract class XPathNodeIterator : System.Collections.IEnumerable
public abstract class XPathNodeIterator : ICloneable
type XPathNodeIterator = class
interface IEnumerable
interface ICloneable
type XPathNodeIterator = class
interface IEnumerable
type XPathNodeIterator = class
interface ICloneable
type XPathNodeIterator = class
interface ICloneable
interface IEnumerable
Public MustInherit Class XPathNodeIterator
Implements ICloneable, IEnumerable
Public MustInherit Class XPathNodeIterator
Implements IEnumerable
Public MustInherit Class XPathNodeIterator
Implements 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 .
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);
Dim document As XPathDocument = New XPathDocument("books.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()
Dim nodes As XPathNodeIterator = navigator.Select("/bookstore/book")
nodes.MoveNext()
Dim nodesNavigator As XPathNavigator = nodes.Current
Dim nodesText As XPathNodeIterator = nodesNavigator.SelectDescendants(XPathNodeType.Text, False)
While nodesText.MoveNext()
Console.WriteLine(nodesText.Current.Value)
End While
En el ejemplo se toma el archivo books.xml como entrada.
<?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 en 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:
while (nodeIterator.MoveNext())
{
XPathNavigator n = nodeIterator.Current;
Console.WriteLine(n.LocalName);
}
While nodeIterator.MoveNext()
Dim n As XPathNavigator = nodeIterator.Current
Console.WriteLine(n.LocalName)
End While
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:
foreach (XPathNavigator n in nodeIterator)
Console.WriteLine(n.LocalName);
For Each n As XPathNavigator In nodeIterator
Console.WriteLine(nav.LocalName)
Next
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 miembros siguientes:
Constructores
| Nombre | Description |
|---|---|
| XPathNodeIterator() |
Inicializa una nueva instancia de la clase XPathNodeIterator. |
Propiedades
| Nombre | Description |
|---|---|
| Count |
Obtiene el índice del último nodo del conjunto seleccionado de nodos. |
| Current |
Cuando se reemplaza en una clase derivada, obtiene el XPathNavigator objeto para este XPathNodeIterator, situado en el nodo de contexto actual. |
| CurrentPosition |
Cuando se reemplaza en una clase derivada, obtiene el índice de la posición actual en el conjunto seleccionado de nodos. |
Métodos
| Nombre | Description |
|---|---|
| Clone() |
Cuando se reemplaza en una clase derivada, devuelve un clon de este XPathNodeIterator objeto. |
| Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
| GetEnumerator() |
Devuelve un IEnumerator objeto para recorrer en iteración el conjunto de nodos seleccionado. |
| GetHashCode() |
Actúa como función hash predeterminada. (Heredado de Object) |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| MoveNext() |
Cuando se invalida en una clase derivada, mueve el XPathNavigator objeto devuelto por la Current propiedad 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
| Nombre | Description |
|---|---|
| ICloneable.Clone() |
Crea un nuevo objeto que es una copia de la instancia actual. |
Métodos de extensión
| Nombre | Description |
|---|---|
| AsParallel(IEnumerable) |
Habilita la paralelización de una consulta. |
| AsQueryable(IEnumerable) |
Convierte un IEnumerable en un IQueryable. |
| Cast<TResult>(IEnumerable) |
Convierte los elementos de un IEnumerable al tipo especificado. |
| OfType<TResult>(IEnumerable) |
Filtra los elementos de un IEnumerable en función de un tipo especificado. |