Bagikan melalui


XPathNodeIterator Kelas

Definisi

Menyediakan iterator melalui sekumpulan simpul yang dipilih.

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
Warisan
XPathNodeIterator
Penerapan

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 yang dikembalikan oleh XPathNavigator kelas tidak diposisikan pada simpul pertama dalam sekumpulan simpul yang dipilih. Panggilan ke MoveNext metode XPathNodeIterator kelas harus dilakukan untuk memposisikan XPathNodeIterator objek pada simpul pertama dalam set simpul yang dipilih.

Saat menggunakan XPathNodeIterator, jika Anda mengedit simpul saat ini atau salah satu leluhurnya, posisi Anda saat ini hilang. Jika Anda ingin mengedit sejumlah simpul yang telah Anda pilih, buat XPathNavigator array, salin semua simpul dari XPathNodeIterator ke dalam array, lalu iterasi melalui array dan ubah simpul.

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 dan Current atau menggunakan 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 .

Catatan Bagi Implementer

Saat mewarisi dari XPathNodeIterator kelas, Anda harus mengambil alih anggota berikut:

Konstruktor

Nama Deskripsi
XPathNodeIterator()

Menginisialisasi instans baru dari kelas XPathNodeIterator.

Properti

Nama Deskripsi
Count

Mendapatkan indeks simpul terakhir dalam kumpulan simpul yang dipilih.

Current

Ketika ditimpa dalam kelas turunan, mendapatkan XPathNavigator objek untuk ini XPathNodeIterator, diposisikan pada simpul konteks saat ini.

CurrentPosition

Ketika ditimpa di kelas turunan, mendapatkan indeks posisi saat ini dalam set simpul yang dipilih.

Metode

Nama Deskripsi
Clone()

Saat ditimpa di kelas turunan, mengembalikan klon objek ini XPathNodeIterator .

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetEnumerator()

Mengembalikan IEnumerator objek untuk diulang melalui kumpulan simpul yang dipilih.

GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
MoveNext()

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

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

Nama Deskripsi
ICloneable.Clone()

Membuat objek baru yang merupakan salinan instans saat ini.

Metode Ekstensi

Nama Deskripsi
AsParallel(IEnumerable)

Mengaktifkan paralelisasi kueri.

AsQueryable(IEnumerable)

Mengonversi IEnumerable menjadi IQueryable.

Cast<TResult>(IEnumerable)

Melemparkan elemen IEnumerable ke jenis yang ditentukan.

OfType<TResult>(IEnumerable)

Memfilter elemen IEnumerable berdasarkan jenis tertentu.

Berlaku untuk