Bagikan melalui


XPathNodeIterator.MoveNext Metode

Definisi

Saat ditimpa di kelas turunan, memindahkan objek yang XPathNavigator dikembalikan oleh Current properti ke simpul berikutnya dalam set simpul yang dipilih.

public:
 abstract bool MoveNext();
public abstract bool MoveNext();
abstract member MoveNext : unit -> bool
Public MustOverride Function MoveNext () As Boolean

Mengembalikan

true XPathNavigator jika objek dipindahkan ke simpul berikutnya; false jika tidak ada lagi simpul yang dipilih.

Contoh

Contoh berikut menggunakan Select metode XPathNavigator kelas untuk memilih set simpul menggunakan XPathNodeIterator kelas .

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

Contoh mengambil file books.xml sebagai 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>

Keterangan

Objek XPathNodeIterator diposisikan pada simpul pertama dalam simpul yang dipilih yang ditetapkan hanya setelah panggilan awal ke MoveNext metode . Kumpulan simpul dibuat dalam urutan dokumen. Oleh karena itu, memanggil MoveNext metode berpindah ke simpul berikutnya dalam urutan dokumen.

Ada dua cara untuk melakukan iterasi melalui XPathNavigator koleksi dengan menggunakan XPathNodeIterator kelas .

Salah satu caranya adalah dengan menggunakan MoveNext metode dan kemudian memanggil Current untuk mendapatkan instans saat ini XPathNavigator , seperti dalam contoh berikut:

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

Cara lain adalah menggunakan perulangan foreach untuk memanggil GetEnumerator metode dan menggunakan antarmuka yang dikembalikan IEnumerator untuk menghitung simpul, seperti dalam contoh berikut:

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

Anda harus menggunakan MoveNext metode dan Current atau menggunakan metode .GetEnumerator Menggabungkan kedua pendekatan ini dapat menyebabkan hasil yang tidak terduga. Misalnya, jika MoveNext metode dipanggil terlebih dahulu, dan kemudian GetEnumerator metode dipanggil dalam foreach perulangan, foreach perulangan tidak akan mulai menghitung hasil dari awal koleksi, tetapi dari posisi setelah Current metode .

Berlaku untuk

Lihat juga