XmlReader.MoveToContent Metode

Definisi

Memeriksa apakah simpul saat ini adalah konten (teks spasi non-putih, , CDATA, Element, EndElementEntityReferenceatau EndEntity) node. Jika simpul bukan node konten, pembaca melompat ke depan ke node konten berikutnya atau akhir file. Ini melewati simpul dari jenis berikut: ProcessingInstruction, , DocumentType, Comment, Whitespaceatau SignificantWhitespace.

public:
 virtual System::Xml::XmlNodeType MoveToContent();
public virtual System.Xml.XmlNodeType MoveToContent();
abstract member MoveToContent : unit -> System.Xml.XmlNodeType
override this.MoveToContent : unit -> System.Xml.XmlNodeType
Public Overridable Function MoveToContent () As XmlNodeType

Mengembalikan

Dari NodeType simpul saat ini yang ditemukan oleh metode atau XmlNodeType.None jika pembaca telah mencapai akhir aliran input.

Pengecualian

XML yang salah ditemukan di aliran input.

Metode XmlReader dipanggil sebelum operasi asinkron sebelumnya selesai. Dalam hal ini, InvalidOperationException dilemparkan dengan pesan "Operasi asinkron sudah berlangsung."

Contoh

Ini berguna ketika Anda ingin menulis kode yang dapat melewati markup XML acak tanpa melanggar. Misalnya, Anda memiliki kode berikut:

if (reader.MoveToContent() == XmlNodeType.Element && reader.Name == "price")
 {
    _price = reader.ReadString();
 }
If reader.MoveToContent() = XmlNodeType.Element And reader.Name = "price" Then
    _price = reader.ReadString()
End If

Kode ini dapat menangani input berikut tanpa melanggar:

<price>123.4</price>

dan

<?xml version="1.0"><!DOCTYPE price SYSTEM
  "abc"><price>123.4</price>

dan

<?xml version="1.0"><!DOCTYPE price SYSTEM "abc"
  [<!ENTITY p
  "123.4">]><price>&p;</price>

dan

<!-- some test comment --><?processing
  instruction?><price>123.4</price>

Keterangan

Jika simpul saat ini adalah simpul atribut, metode ini memindahkan pembaca kembali ke elemen yang memiliki atribut .

Untuk versi asinkron dari metode ini, lihat MoveToContentAsync.

Berlaku untuk