XPathNodeIterator XPathNodeIterator XPathNodeIterator XPathNodeIterator Class

Definition

Stellt einen Iterator für eine ausgewählte Gruppe von Knoten bereit.Provides an iterator over a selected set of nodes.

public ref class XPathNodeIterator abstract : ICloneable, System::Collections::IEnumerable
public abstract class XPathNodeIterator : ICloneable, System.Collections.IEnumerable
type XPathNodeIterator = class
    interface ICloneable
    interface IEnumerable
Public MustInherit Class XPathNodeIterator
Implements ICloneable, IEnumerable
Vererbung
XPathNodeIteratorXPathNodeIteratorXPathNodeIteratorXPathNodeIterator
Implementiert

Beispiele

Im folgenden Beispiel wird die Select Methode der XPathNavigator Klasse auf eine Gruppe von Knoten mithilfe der XPathNodeIterator Klasse.The following example uses the Select method of the XPathNavigator class to select a node set using the XPathNodeIterator class.

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

In diesem Beispiel wird die Datei books.xml als Eingabe verwendet.The example takes the books.xml file as 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>  

Hinweise

Ein XPathNodeIterator zurückgegebenes Objekt der XPathNavigator Klasse befindet sich nicht auf dem ersten Knoten in einer ausgewählten Reihe von Knoten.An XPathNodeIterator object returned by the XPathNavigator class is not positioned on the first node in a selected set of nodes. Einen Aufruf der MoveNext -Methode der der XPathNodeIterator Klasse muss vorgenommen werden, um die position der XPathNodeIterator Objekt auf dem ersten Knoten in der ausgewählten Gruppe von Knoten.A call to the MoveNext method of the XPathNodeIterator class must be made to position the XPathNodeIterator object on the first node in the selected set of nodes.

Bei Verwendung der XPathNodeIterator, wenn Sie den aktuellen Knoten oder Vorgänger bearbeiten, Ihre aktuelle Position bleibt.When using the XPathNodeIterator, if you edit the current node or any of its ancestors, your current position is lost. Wenn Sie eine Anzahl von Knoten bearbeiten möchten, die Sie ausgewählt haben, erstellen Sie eine XPathNavigator array, kopieren Sie alle Knoten aus der XPathNodeIterator in das Array, klicken Sie dann das Array durchlaufen, und ändern Sie die Knoten.If you want to edit a number of nodes that you have selected, create a XPathNavigator array, copy all of the nodes from the XPathNodeIterator into the array, then iterate through the array and modify the nodes.

Es gibt zwei Möglichkeiten zum Durchlaufen einer XPathNavigator Sammlung mithilfe der XPathNodeIterator Klasse.There are two ways to iterate over an XPathNavigator collection by using the XPathNodeIterator class.

Eine Möglichkeit ist die Verwendung der MoveNext -Methode, und rufen Sie dann Current Abrufen des aktuellen XPathNavigator Instanz, wie im folgenden Beispiel gezeigt:One way is to use the MoveNext method and then call Current to get the current XPathNavigator instance, as in the following example:

   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

Eine weitere Möglichkeit ist die Verwendung einer foreach Schleife zum Aufrufen der GetEnumerator -Methode und die zurückgegebene IEnumerator Schnittstelle, um die Knoten, wie im folgenden Beispiel aufzulisten:Another way is to use a foreach loop to call the GetEnumerator method and use the returned IEnumerator interface to enumerate the nodes, as in the following example:

   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

Sie sollten entweder MoveNext und Current oder GetEnumerator.You should either use MoveNext and Current or use GetEnumerator. Diese beiden Ansätze kombinieren, kann zu unerwarteten Ergebnissen führen.Combining these two approaches can cause unexpected results. Z. B. wenn die MoveNext Methode zuerst aufgerufen wird, und klicken Sie dann die GetEnumerator Methode wird aufgerufen, der foreach Schleife, die foreach Schleife startet nicht Auflisten der Ergebnisse aus den Anfang der Auflistung, jedoch von der Position nach der Current Methode.For example, if the MoveNext method is called first, and then the GetEnumerator method is called in the foreach loop, the foreach loop will not start enumerating the results from the beginning of the collection, but from the position after the Current method.

Hinweise für Vererber

Beim Erben von der XPathNodeIterator -Klasse, müssen Sie die folgenden Member überschreiben:When you inherit from the XPathNodeIterator class, you must override the following members:

Konstruktoren

XPathNodeIterator() XPathNodeIterator() XPathNodeIterator() XPathNodeIterator()

Initialisiert eine neue Instanz der XPathNodeIterator-Klasse.Initializes a new instance of the XPathNodeIterator class.

Eigenschaften

Count Count Count Count

Ruft den Index des letzten Knotens in der ausgewählten Gruppe von Knoten ab.Gets the index of the last node in the selected set of nodes.

Current Current Current Current

Ruft beim Überscheiben in einer abgeleiteten Klasse das XPathNavigator-Objekt für diesen XPathNodeIterator ab, der sich auf dem aktuellen Kontextknoten befindet.When overridden in a derived class, gets the XPathNavigator object for this XPathNodeIterator, positioned on the current context node.

CurrentPosition CurrentPosition CurrentPosition CurrentPosition

Ruft beim Überschreiben in einer abgeleiteten Klasse den Index der aktuellen Position in der ausgewählten Gruppe von Knoten ab.When overridden in a derived class, gets the index of the current position in the selected set of nodes.

Methoden

Clone() Clone() Clone() Clone()

Gibt beim Überschreiben in einer abgeleiteten Klasse einen Klon dieses XPathNodeIterator-Objekts zurück.When overridden in a derived class, returns a clone of this XPathNodeIterator object.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetEnumerator() GetEnumerator() GetEnumerator() GetEnumerator()

Gibt ein IEnumerator-Objekt zurück, mit dem die Gruppe der ausgewählten Knoten durchlaufen werden kann.Returns an IEnumerator object to iterate through the selected node set.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
MoveNext() MoveNext() MoveNext() MoveNext()

Verschiebt beim Überschreiben in einer abgeleiteten Klasse das von der XPathNavigator-Eigenschaft zurückgegebene Current-Objekt auf den nächsten Knoten in der Gruppe der ausgewählten Knoten.When overridden in a derived class, moves the XPathNavigator object returned by the Current property to the next node in the selected node set.

ToString() ToString() ToString() ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Inherited from Object)

Explizite Schnittstellenimplementierungen

ICloneable.Clone() ICloneable.Clone() ICloneable.Clone() ICloneable.Clone()

Erstellt ein neues Objekt, das eine Kopie der aktuellen Instanz darstellt.Creates a new object that is a copy of the current instance.

Extension Methods

Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable)

Wandelt die Elemente eines IEnumerable in den angegebenen Typ umCasts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable)

Filtert die Elemente eines IEnumerable anhand eines angegebenen TypsFilters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable)

Ermöglicht die Parallelisierung einer Abfrage.Enables parallelization of a query.

AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable)

Konvertiert eine IEnumerable auf eine IQueryable.Converts an IEnumerable to an IQueryable.

Gilt für: