XPathNodeIterator Osztály

Definíció

Iterátort biztosít egy kijelölt csomópontkészleten.

public ref class XPathNodeIterator abstract : ICloneable
public ref class XPathNodeIterator abstract : ICloneable, System::Collections::IEnumerable
public abstract class XPathNodeIterator : ICloneable
public abstract class XPathNodeIterator : ICloneable, System.Collections.IEnumerable
type XPathNodeIterator = class
    interface ICloneable
type XPathNodeIterator = class
    interface ICloneable
    interface IEnumerable
type XPathNodeIterator = class
    interface IEnumerable
    interface ICloneable
Public MustInherit Class XPathNodeIterator
Implements ICloneable
Public MustInherit Class XPathNodeIterator
Implements ICloneable, IEnumerable
Öröklődés
XPathNodeIterator
Megvalósítás

Példák

Az alábbi példa az Select osztály metódusával XPathNavigator választ ki egy csomópontkészletet az XPathNodeIterator osztály használatával.

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

A példa a books.xml fájlt veszi bemenetként.

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

Megjegyzések

Az XPathNodeIterator osztály által XPathNavigator visszaadott objektum nincs a kijelölt csomópontkészlet első csomópontján. Meg kell hívni az MoveNextXPathNodeIterator osztály metódusát, hogy az objektumot XPathNodeIterator a kijelölt csomópontkészlet első csomópontján helyezze el.

Ha az XPathNodeIteratoraktuális csomópontot vagy annak valamelyik elődjét szerkessze, a jelenlegi pozíció elveszik. Ha több kijelölt csomópontot szeretne szerkeszteni, hozzon létre egy XPathNavigator tömböt, másolja az összes csomópontot a XPathNodeIterator tömbbe, majd iterálja végig a tömböt, és módosítsa a csomópontokat.

Az osztály használatával XPathNodeIterator kétféleképpen lehet iterálni egy XPathNavigator gyűjteményt.

Ennek egyik módja a MoveNext metódus használata, majd az aktuális XPathNavigator példány lekéréseCurrent, ahogyan az alábbi példában is látható:

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

Egy másik módszer a foreach metódus meghívása GetEnumerator és a visszaadott IEnumerator felület használata a csomópontok számbavételére, ahogyan az alábbi példában is látható:

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

Használhatja MoveNext és Current használhatja GetEnumeratoris. A két módszer kombinálása váratlan eredményeket okozhat. Ha például a MoveNext metódust hívják meg először, majd a GetEnumerator metódust meghívja a foreach hurokban, a foreach ciklus nem a gyűjtemény elejétől, hanem a metódus utáni Current pozícióból kezdi meg az eredmények számbavételét.

Megjegyzések az implementálókhoz

Ha az XPathNodeIterator osztálytól örököl, felül kell bírálnia a következő tagokat:

Konstruktorok

Name Description
XPathNodeIterator()

Inicializálja a XPathNodeIterator osztály új példányát.

Tulajdonságok

Name Description
Count

Lekéri a kijelölt csomópontkészlet utolsó csomópontjának indexét.

Current

Ha felül van bírálva egy származtatott osztályban, lekéri ennek XPathNodeIteratoraz objektumnak az XPathNavigator objektumát, amely az aktuális környezeti csomóponton van elhelyezve.

CurrentPosition

Ha felülbírált egy származtatott osztályban, lekéri az aktuális pozíció indexét a kijelölt csomópontkészletben.

Metódusok

Name Description
Clone()

Ha felül van bírálva egy származtatott osztályban, ennek az objektumnak a klónját XPathNodeIterator adja vissza.

Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetEnumerator()

Egy objektumot ad IEnumerator vissza, amely a kijelölt csomópontkészleten halad át.

GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
MoveNext()

Ha egy származtatott osztályban felül van bírálva, a XPathNavigator tulajdonság által Current visszaadott objektumot a kijelölt csomópontkészlet következő csomópontja felé helyezi át.

ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

Explicit interfész-implementációk

Name Description
ICloneable.Clone()

Létrehoz egy új objektumot, amely az aktuális példány másolata.

Bővítő metódusok

Name Description
AsParallel(IEnumerable)

Lehetővé teszi a lekérdezés párhuzamosítását.

AsQueryable(IEnumerable)

Átalakítja az egyiket IEnumerableIQueryable.

Cast<TResult>(IEnumerable)

Egy elem elemeit IEnumerable a megadott típusra veti.

OfType<TResult>(IEnumerable)

Egy adott típus alapján szűri IEnumerable egy adott elem elemeit.

A következőre érvényes: