Lire en anglais

Partager via


XPathNodeIterator Classe

Définition

Fournit un itérateur sur un ensemble de nœuds sélectionné.

C#
public abstract class XPathNodeIterator : ICloneable, System.Collections.IEnumerable
C#
public abstract class XPathNodeIterator : System.Collections.IEnumerable
C#
public abstract class XPathNodeIterator : ICloneable
Héritage
XPathNodeIterator
Implémente

Exemples

L’exemple suivant utilise la Select méthode de la XPathNavigator classe pour sélectionner un jeu de nœuds à l’aide de la XPathNodeIterator classe .

C#
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);

L'exemple prend le fichier books.xml comme entrée.

XML
<?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é. Un appel à la MoveNext méthode de la XPathNodeIterator classe doit être effectué pour positionner l’objet XPathNodeIterator sur le premier nœud de l’ensemble de nœuds sélectionné.

Lorsque vous utilisez le XPathNodeIterator, si vous modifiez le nœud actuel ou l’un de ses ancêtres, votre position actuelle est perdue. Si vous souhaitez modifier un certain nombre de nœuds que vous avez sélectionnés, créez un XPathNavigator tableau, copiez tous les nœuds du XPathNodeIterator dans le tableau, puis effectuez une itération dans le tableau et modifiez les nœuds.

Il existe deux façons d’itérer sur une XPathNavigator collection à l’aide de la XPathNodeIterator classe .

L’une des méthodes consiste à utiliser la MoveNext méthode, puis à appeler Current pour obtenir l’instance actuelle XPathNavigator , comme dans l’exemple suivant :

C#
while (nodeIterator.MoveNext())
{
    XPathNavigator n = nodeIterator.Current;
    Console.WriteLine(n.LocalName);
}

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

C#
foreach (XPathNavigator n in nodeIterator)
    Console.WriteLine(n.LocalName);

Vous devez utiliser MoveNext et Current ou utiliser GetEnumerator. La combinaison de ces deux approches peut entraîner des résultats inattendus. Par exemple, si la MoveNext méthode est appelée en premier, puis qu’elle GetEnumerator est appelée dans la foreach boucle, la foreach boucle ne commence pas à énumérer les résultats à partir du début de la collection, mais à partir de la position après la Current méthode.

Notes pour les responsables de l’implémentation

Lorsque vous héritez de la XPathNodeIterator classe, vous devez remplacer les membres suivants :

Constructeurs

XPathNodeIterator()

Initialise une nouvelle instance de la classe XPathNodeIterator.

Propriétés

Count

Obtient l'index du dernier nœud dans l'ensemble des nœuds sélectionnés.

Current

En cas de substitution dans une classe dérivée, obtient l’objet XPathNavigator pour cet élément XPathNodeIterator, placé sur le nœud de contexte actuel.

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.

Méthodes

Clone()

En cas de substitution dans une classe dérivée, retourne un clone de cet objet XPathNodeIterator.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetEnumerator()

Retourne un objet IEnumerator pour itérer au sein de l'ensemble de nœuds sélectionné.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(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 dans l’ensemble de nœuds sélectionné.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

ICloneable.Clone()

Crée un objet qui est une copie de l'instance actuelle.

Méthodes d’extension

Cast<TResult>(IEnumerable)

Effectue un cast des éléments d'un IEnumerable vers le type spécifié.

OfType<TResult>(IEnumerable)

Filtre les éléments d'un IEnumerable en fonction du type spécifié.

AsParallel(IEnumerable)

Active la parallélisation d'une requête.

AsQueryable(IEnumerable)

Convertit un IEnumerable en IQueryable.

S’applique à

Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1