XPathNodeIterator.MoveNext Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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 .