XPathNodeIterator Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Fornisce un iteratore su un set selezionato di nodi.
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
- Ereditarietà
-
XPathNodeIterator
- Implementazioni
Esempio
Nell'esempio seguente viene usato il Select metodo della XPathNavigator classe per selezionare un set di nodi usando la XPathNodeIterator classe .
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
L'esempio accetta il file books.xml come input.
<?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>
Commenti
Un XPathNodeIterator oggetto restituito dalla XPathNavigator classe non è posizionato sul primo nodo di un set selezionato di nodi. È necessario effettuare una chiamata al MoveNext metodo della XPathNodeIterator classe per posizionare l'oggetto XPathNodeIterator sul primo nodo del set di nodi selezionato.
Quando si usa XPathNodeIterator, se si modifica il nodo corrente o uno dei relativi predecessori, la posizione corrente viene persa. Se si vuole modificare un numero di nodi selezionati, creare una XPathNavigator matrice, copiare tutti i nodi da XPathNodeIterator nella matrice, quindi scorrere la matrice e modificare i nodi.
Esistono due modi per scorrere una XPathNavigator raccolta usando la XPathNodeIterator classe .
Un modo consiste nell'usare il MoveNext metodo e quindi chiamare Current per ottenere l'istanza corrente XPathNavigator , come nell'esempio seguente:
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
Un altro modo consiste nell'usare un foreach ciclo per chiamare il GetEnumerator metodo e usare l'interfaccia restituita IEnumerator per enumerare i nodi, come nell'esempio seguente:
foreach (XPathNavigator n in nodeIterator)
Console.WriteLine(n.LocalName);
For Each n As XPathNavigator In nodeIterator
Console.WriteLine(nav.LocalName)
Next
È consigliabile usare MoveNext e Current o usare GetEnumerator. La combinazione di questi due approcci può causare risultati imprevisti. Ad esempio, se il MoveNext metodo viene chiamato per primo e quindi il GetEnumerator metodo viene chiamato nel foreach ciclo , il foreach ciclo non inizierà ad enumerare i risultati dall'inizio della raccolta, ma dalla posizione dopo il Current metodo .
Note per gli implementatori
Quando si eredita dalla XPathNodeIterator classe , è necessario eseguire l'override dei membri seguenti:
Costruttori
| Nome | Descrizione |
|---|---|
| XPathNodeIterator() |
Inizializza una nuova istanza della classe XPathNodeIterator. |
Proprietà
| Nome | Descrizione |
|---|---|
| Count |
Ottiene l'indice dell'ultimo nodo nel set di nodi selezionato. |
| Current |
Quando sottoposto a override in una classe derivata, ottiene l'oggetto XPathNavigator per questo XPathNodeIteratoroggetto , posizionato sul nodo di contesto corrente. |
| CurrentPosition |
Quando sottoposto a override in una classe derivata, ottiene l'indice della posizione corrente nel set selezionato di nodi. |
Metodi
| Nome | Descrizione |
|---|---|
| Clone() |
Quando sottoposto a override in una classe derivata, restituisce un clone di questo XPathNodeIterator oggetto. |
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| GetEnumerator() |
Restituisce un IEnumerator oggetto per scorrere il set di nodi selezionato. |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| MoveNext() |
Quando sottoposto a override in una classe derivata, sposta l'oggetto XPathNavigator restituito dalla Current proprietà al nodo successivo nel set di nodi selezionato. |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| ICloneable.Clone() |
Crea un nuovo oggetto che rappresenta una copia dell'istanza corrente. |
Metodi di estensione
| Nome | Descrizione |
|---|---|
| AsParallel(IEnumerable) |
Abilita la parallelizzazione di una query. |
| AsQueryable(IEnumerable) |
Converte un IEnumerable in un IQueryable. |
| Cast<TResult>(IEnumerable) |
Esegue il cast degli elementi di un IEnumerable al tipo specificato. |
| OfType<TResult>(IEnumerable) |
Filtra gli elementi di un IEnumerable in base a un tipo specificato. |