XmlReader.ReadOuterXml 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.
Ketika ditimpa di kelas turunan, membaca konten, termasuk markup, mewakili simpul ini dan semua anak-anaknya.
public:
virtual System::String ^ ReadOuterXml();
public virtual string ReadOuterXml();
abstract member ReadOuterXml : unit -> string
override this.ReadOuterXml : unit -> string
Public Overridable Function ReadOuterXml () As String
Mengembalikan
Jika pembaca diposisikan pada elemen atau node atribut, metode ini mengembalikan semua konten XML, termasuk markup, dari simpul saat ini dan semua turunannya; jika tidak, ia mengembalikan string kosong.
Pengecualian
XML tidak terbentuk dengan baik, atau terjadi kesalahan saat mengurai XML.
Metode XmlReader dipanggil sebelum operasi asinkron sebelumnya selesai. Dalam hal ini, InvalidOperationException dilemparkan dengan pesan "Operasi asinkron sudah berlangsung."
Contoh
Contoh berikut membandingkan ReadInnerXml metode dan ReadOuterXml .
// Load the file and ignore all white space.
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreWhitespace = true;
using (XmlReader reader = XmlReader.Create("2books.xml")) {
// Moves the reader to the root element.
reader.MoveToContent();
// Moves to book node.
reader.Read();
// Note that ReadInnerXml only returns the markup of the node's children
// so the book's attributes are not returned.
Console.WriteLine("Read the first book using ReadInnerXml...");
Console.WriteLine(reader.ReadInnerXml());
// ReadOuterXml returns the markup for the current node and its children
// so the book's attributes are also returned.
Console.WriteLine("Read the second book using ReadOuterXml...");
Console.WriteLine(reader.ReadOuterXml());
}
' Load the file and ignore all white space.
Dim settings As New XmlReaderSettings()
settings.IgnoreWhitespace = True
Using reader As XmlReader = XmlReader.Create("2books.xml")
' Moves the reader to the root element.
reader.MoveToContent()
' Moves to book node.
reader.Read()
' Note that ReadInnerXml only returns the markup of the node's children
' so the book's attributes are not returned.
Console.WriteLine("Read the first book using ReadInnerXml...")
Console.WriteLine(reader.ReadInnerXml())
' ReadOuterXml returns the markup for the current node and its children
' so the book's attributes are also returned.
Console.WriteLine("Read the second book using ReadOuterXml...")
Console.WriteLine(reader.ReadOuterXml())
End Using
Contohnya menggunakan 2books.xml file sebagai input.
<!--sample XML fragment-->
<bookstore>
<book genre='novel' ISBN='10-861003-324'>
<title>The Handmaid's Tale</title>
<price>19.95</price>
</book>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
<price>24.95</price>
</book>
</bookstore>
Keterangan
Metode ini mirip ReadInnerXml dengan kecuali juga mengembalikan tag awal dan akhir.
Metode ini menangani elemen dan node atribut dengan cara berikut:
| Jenis node | Posisi sebelum panggilan | Fragmen XML | Mengembalikan nilai | Posisi Setelah Panggilan |
|---|---|---|---|---|
Element |
item1 Pada tag mulai. |
<item1>text1</item1><item2 text2></item2> | <item1>text1</item1> |
item2 Pada tag mulai. |
Attribute |
Pada node attr1 atribut. |
<item attr1="val1" attr2="val2">text</item> | attr1="val1" | Tetap pada node attr1 atribut. |
Jika pembaca diposisikan pada simpul daun, panggilan ReadOuterXml setara dengan panggilan Read. Metode mengembalikan String.Empty (kecuali untuk node atribut, dalam hal ini markup atribut dikembalikan).
Metode ini memeriksa XML yang terbentuk dengan baik. Jika ReadOuterXml dipanggil dari XmlValidatingReader, metode ini juga memvalidasi konten yang dikembalikan
Seperti yang XmlNodeReaderdiimplementasikan dalam kelas XmlTextReader , XmlValidatingReader dan ReadOuterXml metode sadar namespace. Mengingat teks <A xmlns:S="urn:1"><S:B>hello</S:B></A>XML berikut , jika pembaca diposisikan pada S:B tag mulai, ReadOuterXml mengembalikan <S:B xmlns:S="urn:1">hello<S:B/>.
Untuk versi asinkron dari metode ini, lihat ReadOuterXmlAsync.