XPathNodeIterator Classe

Définition

Fournit un itérateur pour un ensemble de nœuds sélectionné.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
Héritage
XPathNodeIterator
Implémente

Exemples

L’exemple suivant utilise la Select méthode de la XPathNavigator classe pour sélectionner un ensemble de nœuds XPathNodeIterator à l’aide de la classe.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

L'exemple prend le fichier books.xml comme entrée.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>  
  

Remarques

Un XPathNodeIterator objet retourné par la XPathNavigator classe n’est pas positionné sur le premier nœud d’un ensemble de nœuds sélectionné.An XPathNodeIterator object returned by the XPathNavigator class is not positioned on the first node in a selected set of nodes. Un appel à la MoveNext méthode de la XPathNodeIterator classe doit être effectué pour positionner l' XPathNodeIterator objet sur le premier nœud de l’ensemble de nœuds sélectionné.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.

Lorsque vous utilisez XPathNodeIterator, si vous modifiez le nœud actuel ou l’un de ses ancêtres, votre position actuelle est perdue.When using the XPathNodeIterator, if you edit the current node or any of its ancestors, your current position is lost. Si vous souhaitez modifier un certain nombre de nœuds que vous avez sélectionnés, créez XPathNavigator un tableau, copiez tous les nœuds XPathNodeIterator de dans le tableau, puis itérez au sein du tableau et modifiez les nœuds.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.

Il existe deux façons d’effectuer une itération XPathNavigator sur une collection à XPathNodeIterator l’aide de la classe.There are two ways to iterate over an XPathNavigator collection by using the XPathNodeIterator class.

L’une des méthodes consiste à MoveNext utiliser la méthode, Current puis à appeler pour XPathNavigator récupérer l’instance actuelle, comme dans l’exemple suivant: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

Une autre méthode consiste à utiliser foreach une boucle pour appeler GetEnumerator la méthode et à utiliser IEnumerator l’interface retournée pour énumérer les nœuds, comme dans l’exemple suivant: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

Vous devez utiliser MoveNext et Current ou utiliser GetEnumerator.You should either use MoveNext and Current or use GetEnumerator. La combinaison de ces deux approches peut entraîner des résultats inattendus.Combining these two approaches can cause unexpected results. Par exemple, si la MoveNext méthode est appelée en premier, puis que GetEnumerator la méthode est appelée dans foreach la boucle, foreach la boucle ne démarrera pas l’énumération des résultats à partir du début de la collection, mais à partir de la position après Current méthode.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.

Notes pour les héritiers

Lorsque vous héritez de XPathNodeIterator la classe, vous devez substituer les membres suivants:When you inherit from the XPathNodeIterator class, you must override the following members:

Constructeurs

XPathNodeIterator()

Initialise une nouvelle instance de la classe XPathNodeIterator.Initializes a new instance of the XPathNodeIterator class.

Propriétés

Count

Obtient l'index du dernier nœud dans l'ensemble des nœuds sélectionnés.Gets the index of the last node in the selected set of nodes.

Current

En cas de substitution dans une classe dérivée, obtient l'objet de XPathNavigator pour ce XPathNodeIterator, placé sur le nœud de contexte actuel.When overridden in a derived class, gets the XPathNavigator object for this XPathNodeIterator, positioned on the current context node.

CurrentPosition

En cas de substitution dans une classe dérivée, obtient l'index de la position actuelle dans l'ensemble des nœuds sélectionnés.When overridden in a derived class, gets the index of the current position in the selected set of nodes.

Méthodes

Clone()

En cas de substitution dans une classe dérivée, retourne un clone de cet objet XPathNodeIterator.When overridden in a derived class, returns a clone of this XPathNodeIterator object.

Equals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.Determines whether the specified object is equal to the current object.

(Hérité de Object)
GetEnumerator()

Retourne un objet IEnumerator pour itérer au sein de l'ensemble de nœuds sélectionné.Returns an IEnumerator object to iterate through the selected node set.

GetHashCode()

Fait office de fonction de hachage par défaut.Serves as the default hash function.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
MoveNext()

En cas de substitution dans une classe dérivée, déplace l'objet XPathNavigator retourné par la propriété Current vers le nœud suivant de l'ensemble sélectionné.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()

Retourne une chaîne qui représente l'objet actuel.Returns a string that represents the current object.

(Hérité de Object)

Implémentations d’interfaces explicites

ICloneable.Clone()

Crée un objet qui est une copie de l'instance actuelle.Creates a new object that is a copy of the current instance.

Méthodes d’extension

Cast<TResult>(IEnumerable)

Effectue un cast des éléments d'un IEnumerable vers le type spécifié.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtre les éléments d'un IEnumerable en fonction du type spécifié.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Active la parallélisation d'une requête.Enables parallelization of a query.

AsQueryable(IEnumerable)

Convertit un IEnumerable en IQueryable.Converts an IEnumerable to an IQueryable.

S’applique à