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 di nodi selezionato.
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 XPathNavigator seguente viene usato il Select metodo della classe per selezionare un set di nodi usando la XPathNodeIterator classe .
XPathDocument^ document = gcnew 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);
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
Nell'esempio il file books.xml
viene considerato 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 nel primo nodo in un set selezionato di nodi. È necessario effettuare una chiamata al MoveNext metodo della XPathNodeIterator classe per posizionare l'oggetto XPathNodeIterator nel primo nodo nel set selezionato di nodi.
Quando si usa , XPathNodeIteratorse 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 dalla XPathNodeIterator matrice, quindi scorrere la matrice e modificare i nodi.
Esistono due modi per eseguire l'iterazione su 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())
{
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 metodo e usare l'interfaccia GetEnumerator restituita IEnumerator per enumerare i nodi, come nell'esempio seguente:
for each (XPathNavigator^ n in nodeIterator)
Console::WriteLine(n->LocalName);
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 usare GetEnumerator. La combinazione di questi due approcci può causare risultati imprevisti. Ad esempio, se il metodo viene chiamato prima e quindi il MoveNext 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 classe, è necessario eseguire l'override XPathNodeIterator dei membri seguenti:
Costruttori
XPathNodeIterator() |
Inizializza una nuova istanza della classe XPathNodeIterator. |
Proprietà
Count |
Ottiene l'indice dell'ultimo nodo del set di nodi selezionato. |
Current |
Quando è sottoposto a override in una classe derivata, ottiene l’oggetto XPathNavigator per XPathNodeIterator, posizionato sul nodo di contesto corrente. |
CurrentPosition |
Quando sottoposto a override in una classe derivata, ottiene l'indice della posizione corrente nel set di nodi selezionato. |
Metodi
Clone() |
Quando sottoposto a override in una classe derivata, restituisce un clone di questo oggetto XPathNodeIterator. |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetEnumerator() |
Restituisce un oggetto IEnumerator con cui scorrere l'insieme di nodi selezionato. |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
MoveNext() |
Quando è sottoposto a override in una classe derivata, sposta l’oggetto XPathNavigator restituito dalla proprietà Current al nodo successivo nel set di nodi selezionato. |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
ICloneable.Clone() |
Crea un nuovo oggetto che è una copia dell'istanza corrente. |
Metodi di estensione
Cast<TResult>(IEnumerable) |
Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato. |
OfType<TResult>(IEnumerable) |
Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato. |
AsParallel(IEnumerable) |
Consente la parallelizzazione di una query. |
AsQueryable(IEnumerable) |
Converte un oggetto IEnumerable in un oggetto IQueryable. |