XPathNodeIterator Klas

Definitie

Biedt een iterator voor een geselecteerde set knooppunten.

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
Overname
XPathNodeIterator
Implementeringen

Voorbeelden

In het volgende voorbeeld wordt de Select methode van de XPathNavigator klasse gebruikt om een knooppuntset te selecteren met behulp van de XPathNodeIterator klasse.

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 het voorbeeld wordt het books.xml bestand als invoer gebruikt.

<?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>

Opmerkingen

Een XPathNodeIterator object dat door de XPathNavigator klasse wordt geretourneerd, bevindt zich niet op het eerste knooppunt in een geselecteerde set knooppunten. Er moet een aanroep van de MoveNext methode van de XPathNodeIterator klasse worden gemaakt om het XPathNodeIterator object op het eerste knooppunt in de geselecteerde set knooppunten te plaatsen.

Wanneer u het XPathNodeIteratorhuidige knooppunt of een van de bovenliggende knooppunten bewerkt, gaat uw huidige positie verloren. Als u een aantal geselecteerde knooppunten wilt bewerken, maakt u een XPathNavigator matrix, kopieert u alle knooppunten van de XPathNodeIterator knooppunten naar de matrix, herhaalt u de matrix en wijzigt u de knooppunten.

Er zijn twee manieren om een XPathNavigator verzameling te herhalen met behulp van de XPathNodeIterator klasse.

Een manier is om de MoveNext methode te gebruiken en vervolgens aan te roepen Current om het huidige XPathNavigator exemplaar op te halen, zoals in het volgende voorbeeld:

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

Een andere manier is om een foreach lus te gebruiken om de GetEnumerator methode aan te roepen en de geretourneerde IEnumerator interface te gebruiken om de knooppunten op te sommen, zoals in het volgende voorbeeld:

foreach (XPathNavigator n in nodeIterator)
    Console.WriteLine(n.LocalName);
For Each n As XPathNavigator In nodeIterator
    Console.WriteLine(nav.LocalName)
Next

U moet ofwel gebruiken MoveNext en Current of gebruiken GetEnumerator. Het combineren van deze twee benaderingen kan onverwachte resultaten veroorzaken. Als de MoveNext methode bijvoorbeeld eerst wordt aangeroepen en de GetEnumerator methode vervolgens in de foreach lus wordt aangeroepen, begint de foreach lus niet met het inventariseren van de resultaten vanaf het begin van de verzameling, maar vanaf de positie na de Current methode.

Notities voor uitvoerders

Wanneer u de XPathNodeIterator klasse overschrijft, moet u de volgende leden overschrijven:

Constructors

Name Description
XPathNodeIterator()

Initialiseert een nieuw exemplaar van de XPathNodeIterator klasse.

Eigenschappen

Name Description
Count

Hiermee haalt u de index op van het laatste knooppunt in de geselecteerde set knooppunten.

Current

Wanneer het object wordt overschreven in een afgeleide klasse, wordt het XPathNavigator object hiervoor XPathNodeIteratoropgehaald, geplaatst op het huidige contextknooppunt.

CurrentPosition

Wanneer deze wordt overschreven in een afgeleide klasse, haalt u de index op van de huidige positie in de geselecteerde set knooppunten.

Methoden

Name Description
Clone()

Wanneer deze wordt overschreven in een afgeleide klasse, wordt een kloon van dit XPathNodeIterator object geretourneerd.

Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetEnumerator()

Retourneert een IEnumerator object dat door de geselecteerde knooppuntset wordt herhaald.

GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
MoveNext()

Wanneer het object wordt overschreven in een afgeleide klasse, verplaatst u het XPathNavigator object dat door de Current eigenschap wordt geretourneerd naar het volgende knooppunt in de geselecteerde knooppuntset.

ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Expliciete interface-implementaties

Name Description
ICloneable.Clone()

Hiermee maakt u een nieuw object dat een kopie van het huidige exemplaar is.

Extensiemethoden

Name Description
AsParallel(IEnumerable)

Hiermee schakelt u parallelle uitvoering van een query in.

AsQueryable(IEnumerable)

Converteert een IEnumerable naar een IQueryable.

Cast<TResult>(IEnumerable)

Cast de elementen van een IEnumerable naar het opgegeven type.

OfType<TResult>(IEnumerable)

Hiermee filtert u de elementen van een IEnumerable op basis van een opgegeven type.

Van toepassing op