XmlTextWriter Kelas

Definisi

Mewakili penulis yang menyediakan cara cepat, tidak di-cache, dan hanya maju untuk menghasilkan aliran atau file yang berisi data XML yang sesuai dengan W3C Extensible Markup Language (XML) 1.0 dan Namespace dalam rekomendasi XML.

Kami menyarankan agar Anda menggunakan kelas sebagai gantinya XmlWriter .

public ref class XmlTextWriter : System::Xml::XmlWriter
public class XmlTextWriter : System.Xml.XmlWriter
type XmlTextWriter = class
    inherit XmlWriter
Public Class XmlTextWriter
Inherits XmlWriter
Warisan
XmlTextWriter

Keterangan

Kelas XmlTextWriter mengimplementasikan kelas XmlWriter.

Note

Kami menyarankan agar Anda membuat XmlWriter instans dengan menggunakan XmlWriter.Create metode dan XmlWriterSettings kelas untuk memanfaatkan fungsionalitas baru.

XmlTextWriter mempertahankan tumpukan namespace yang sesuai dengan semua namespace yang ditentukan dalam tumpukan elemen saat ini. Menggunakan XmlTextWriter Anda dapat mendeklarasikan namespace secara manual.

w.WriteStartElement("root");
w.WriteAttributeString("xmlns", "x", null, "urn:1");
w.WriteStartElement("item","urn:1");
w.WriteEndElement();
w.WriteStartElement("item","urn:1");
w.WriteEndElement();
w.WriteEndElement();

Kode C# ini menghasilkan output berikut. XmlTextWriter mempromosikan deklarasi ruang nama ke elemen akar untuk mencegah duplikasinya pada dua elemen anak. Elemen turunan mengambil awalan dari deklarasi ruang nama.

<root xmlns:x="urn:1">
<x:item/>
<x:item/>
</root>

XmlTextWriter juga memungkinkan Anda untuk mengambil alih deklarasi namespace saat ini. Dalam contoh berikut, namespace URI "123" ditimpa oleh "abc" untuk menghasilkan elemen XML <x:node xmlns:x="abc"/>.

w.WriteStartElement("x","node","123");
w.WriteAttributeString("xmlns","x",null,"abc");

Dengan menggunakan metode tulis yang mengambil awalan sebagai argumen, Anda juga dapat menentukan awalan mana yang akan digunakan. Dalam contoh berikut, dua awalan yang berbeda dipetakan ke URI namespace yang sama untuk menghasilkan teks <x:root xmlns:x="urn:1"><y:item xmlns:y="urn:1"/></x:root>XML .

XmlTextWriter w = new XmlTextWriter(Console.Out);
w.WriteStartElement("x","root","urn:1");
w.WriteStartElement("y","item","urn:1");
w.WriteEndElement();
w.WriteEndElement();
w.Close();

Jika ada beberapa deklarasi namespace yang memetakan awalan yang berbeda ke URI namespace yang sama, XmlTextWriter menelusuri tumpukan deklarasi namespace dari belakang dan memilih yang terdekat.

XmlTextWriter w = new XmlTextWriter(Console.Out);
w.Formatting = Formatting.Indented;
w.WriteStartElement("x","root","urn:1");
w.WriteStartElement("y","item","urn:1");
w.WriteAttributeString("attr","urn:1","123");
w.WriteEndElement();
w.WriteEndElement();
w.Close();

Dalam contoh C#ini, karena WriteAttributeString panggilan tidak menentukan awalan, penulis menggunakan awalan terakhir yang didorong ke tumpukan namespace layanan, dan menghasilkan XML berikut:

<x:root xmlns:x="urn:1">
<y:item y:attr="123" xmlns:y="urn:1" />
</x:root>

Jika terjadi konflik namespace, XmlTextWriter menyelesaikannya dengan menghasilkan awalan alternatif. Misalnya, jika atribut dan elemen memiliki awalan yang sama tetapi namespace yang berbeda, XmlWriter menghasilkan prefiks alternatif untuk atribut. Awalan yang dihasilkan diberi nama n{i} di mana i adalah angka yang dimulai pada 1. Angka diatur ulang ke 1 untuk setiap elemen.

Atribut yang terkait dengan URI namespace harus memiliki awalan (namespace default tidak berlaku untuk atribut). Ini sesuai dengan bagian 5.2 dari Namespace W3C dalam rekomendasi XML. Jika atribut mereferensikan URI namespace, tetapi tidak menentukan awalan, penulis menghasilkan awalan untuk atribut .

Saat menulis elemen kosong, spasi tambahan ditambahkan antara nama tag dan tag penutup, misalnya <item />. Ini memberikan kompatibilitas dengan browser yang lebih lama.

String Ketika digunakan sebagai parameter metode, null dan String.Empty setara. String.Empty mengikuti aturan W3C.

Untuk menulis data bertipe kuat, gunakan kelas XmlConvert untuk mengonversi jenis data menjadi string. Misalnya, kode C# berikut mengonversi data dari Double ke String dan menulis elemen <price>19.95</price>.

Double price = 19.95;
writer.WriteElementString("price", XmlConvert.ToString(price));

XmlTextWriter tidak memeriksa hal-hal berikut:

  • Karakter tidak valid dalam nama atribut dan elemen.
  • Karakter Unicode yang tidak sesuai dengan pengodean yang ditentukan. Jika karakter Unicode tidak sesuai dengan pengodean yang ditentukan, XmlTextWriter tidak lolos dari karakter Unicode ke dalam entitas karakter.
  • Atribut yang berulang.
  • Karakter dalam pengidentifikasi publik DOCTYPE atau pengidentifikasi sistem.

Pertimbangan keamanan

Item berikut adalah hal-hal yang perlu dipertimbangkan saat bekerja dengan kelas XmlTextWriter.

  • Pengecualian yang dilemparkan oleh XmlTextWriter dapat mengungkapkan informasi jalur yang tidak ingin Anda ekspos ke dalam aplikasi. Aplikasi Anda harus menangkap pengecualian dan memprosesnya dengan tepat.

  • Ketika Anda meneruskan XmlTextWriter ke aplikasi lain, aliran yang mendasar terekspos ke aplikasi tersebut. Jika Anda perlu meneruskan XmlTextWriter ke aplikasi semi-tepercaya, Anda harus menggunakan objek XmlWriter yang dibuat oleh metode Create sebagai gantinya.

  • XmlTextWriter tidak memvalidasi data apa pun yang diteruskan ke WriteDocType metode atau WriteRaw . Anda sebaiknya jangan meneruskan data sembarang ke metode-metode ini.

  • Jika pengaturan default diubah, tidak ada jaminan bahwa output yang dihasilkan adalah data XML yang terbentuk dengan baik.

  • Jangan menerima komponen pendukung, seperti Encoding objek, dari sumber yang tidak tepercaya.

Konstruktor

Nama Deskripsi
XmlTextWriter(Stream, Encoding)

Membuat instans XmlTextWriter kelas menggunakan aliran dan pengodean yang ditentukan.

XmlTextWriter(String, Encoding)

Membuat instans XmlTextWriter kelas menggunakan file yang ditentukan.

XmlTextWriter(TextWriter)

Membuat instans XmlTextWriter kelas menggunakan TextWriter.

Properti

Nama Deskripsi
BaseStream

Mendapatkan objek aliran yang mendasar.

Formatting

Menunjukkan bagaimana output diformat.

Indentation

Mendapatkan atau mengatur berapa banyak IndentChar yang akan ditulis untuk setiap tingkat dalam hierarki saat Formatting diatur ke Formatting.Indented.

IndentChar

Mendapatkan atau mengatur karakter mana yang akan digunakan untuk inden saat Formatting diatur ke Formatting.Indented.

Namespaces

Mendapatkan atau menetapkan nilai yang menunjukkan apakah akan melakukan dukungan namespace.

QuoteChar

Mendapatkan atau mengatur karakter mana yang akan digunakan untuk mengutip nilai atribut.

Settings

Mendapatkan objek yang XmlWriterSettings digunakan untuk membuat instans ini XmlWriter .

(Diperoleh dari XmlWriter)
WriteState

Mendapatkan status penulis.

XmlLang

Mendapatkan cakupan saat ini xml:lang .

XmlSpace

Mendapatkan yang XmlSpace mewakili cakupan saat ini xml:space .

Metode

Nama Deskripsi
Close()

Menutup aliran ini dan aliran yang mendasar.

Dispose()

Merilis semua sumber daya yang digunakan oleh instans XmlWriter kelas saat ini.

(Diperoleh dari XmlWriter)
Dispose(Boolean)

Merilis sumber daya yang tidak dikelola yang XmlWriter digunakan oleh dan secara opsional merilis sumber daya terkelola.

(Diperoleh dari XmlWriter)
DisposeAsync()

Melakukan tugas yang ditentukan aplikasi yang terkait dengan membebaskan, merilis, atau mengatur ulang sumber daya yang tidak dikelola secara asinkron.

(Diperoleh dari XmlWriter)
DisposeAsyncCore()

Melakukan tugas yang ditentukan aplikasi yang terkait dengan membebaskan, merilis, atau mengatur ulang sumber daya terkelola secara asinkron.

(Diperoleh dari XmlWriter)
Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
Flush()

Bersihkan apa pun yang ada di buffer ke aliran yang mendasar dan juga siram aliran yang mendasar.

FlushAsync()

Secara asinkron menyiram apa pun yang ada di buffer ke aliran yang mendasar dan juga menyiram aliran yang mendasar.

(Diperoleh dari XmlWriter)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
LookupPrefix(String)

Mengembalikan awalan terdekat yang ditentukan dalam cakupan namespace saat ini untuk URI namespace.

MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)
WriteAttributes(XmlReader, Boolean)

Ketika ditimpa di kelas turunan, tulis semua atribut yang ditemukan pada posisi saat ini di XmlReader.

(Diperoleh dari XmlWriter)
WriteAttributesAsync(XmlReader, Boolean)

Secara asinkron menulis semua atribut yang ditemukan pada posisi saat ini di XmlReader.

(Diperoleh dari XmlWriter)
WriteAttributeString(String, String, String, String)

Saat ditimpa dalam kelas turunan, tulis atribut dengan awalan, nama lokal, URI namespace, dan nilai yang ditentukan.

(Diperoleh dari XmlWriter)
WriteAttributeString(String, String, String)

Saat ditimpa dalam kelas turunan, menulis atribut dengan nama lokal, URI namespace, dan nilai yang ditentukan.

(Diperoleh dari XmlWriter)
WriteAttributeString(String, String)

Saat ditimpa dalam kelas turunan, tulis atribut dengan nama dan nilai lokal yang ditentukan.

(Diperoleh dari XmlWriter)
WriteAttributeStringAsync(String, String, String, String)

Secara asinkron menulis atribut dengan awalan, nama lokal, URI namespace, dan nilai yang ditentukan.

(Diperoleh dari XmlWriter)
WriteBase64(Byte[], Int32, Int32)

Mengodekan byte biner yang ditentukan sebagai base64 dan menulis teks yang dihasilkan.

WriteBase64Async(Byte[], Int32, Int32)

Secara asinkron mengodekan byte biner yang ditentukan sebagai Base64 dan menulis teks yang dihasilkan.

(Diperoleh dari XmlWriter)
WriteBinHex(Byte[], Int32, Int32)

Mengodekan byte biner yang ditentukan sebagai binhex dan menulis teks yang dihasilkan.

WriteBinHexAsync(Byte[], Int32, Int32)

Secara asinkron mengodekan byte biner yang ditentukan sebagai BinHex dan menuliskan teks yang dihasilkan.

(Diperoleh dari XmlWriter)
WriteCData(String)

Menulis ! <[ CDATA[...]]> blokir yang berisi teks yang ditentukan.

WriteCDataAsync(String)

Secara asinkron menulis ! <[ CDATA[...]]> blokir yang berisi teks yang ditentukan.

(Diperoleh dari XmlWriter)
WriteCharEntity(Char)

Memaksa pembuatan entitas karakter untuk nilai karakter Unicode yang ditentukan.

WriteCharEntityAsync(Char)

Secara asinkron memaksa pembuatan entitas karakter untuk nilai karakter Unicode yang ditentukan.

(Diperoleh dari XmlWriter)
WriteChars(Char[], Int32, Int32)

Menulis teks satu buffer pada satu waktu.

WriteCharsAsync(Char[], Int32, Int32)

Secara asinkron menulis teks satu buffer sekaligus.

(Diperoleh dari XmlWriter)
WriteComment(String)

Menuliskan komentar <--...--> yang berisi teks yang ditentukan.

WriteCommentAsync(String)

Secara asinkron menuliskan komentar <--...--> berisi teks yang ditentukan.

(Diperoleh dari XmlWriter)
WriteDocType(String, String, String, String)

Menulis deklarasi DOCTYPE dengan nama dan atribut opsional yang ditentukan.

WriteDocTypeAsync(String, String, String, String)

Secara asinkron menulis deklarasi DOCTYPE dengan nama dan atribut opsional yang ditentukan.

(Diperoleh dari XmlWriter)
WriteElementString(String, String, String, String)

Menulis elemen dengan awalan, nama lokal, URI namespace, dan nilai yang ditentukan.

(Diperoleh dari XmlWriter)
WriteElementString(String, String, String)

Menulis elemen dengan nama lokal, URI namespace, dan nilai yang ditentukan.

(Diperoleh dari XmlWriter)
WriteElementString(String, String)

Menulis elemen dengan nama dan nilai lokal yang ditentukan.

(Diperoleh dari XmlWriter)
WriteElementStringAsync(String, String, String, String)

Menulis elemen secara asinkron dengan awalan, nama lokal, URI namespace, dan nilai yang ditentukan.

(Diperoleh dari XmlWriter)
WriteEndAttribute()

Menutup panggilan sebelumnya WriteStartAttribute(String, String, String) .

WriteEndAttributeAsync()

Secara asinkron menutup panggilan sebelumnya WriteStartAttribute(String, String) .

(Diperoleh dari XmlWriter)
WriteEndDocument()

Menutup elemen atau atribut yang terbuka dan menempatkan penulis kembali dalam status Mulai.

WriteEndDocumentAsync()

Secara asinkron menutup elemen atau atribut terbuka apa pun dan menempatkan penulis kembali dalam status Mulai.

(Diperoleh dari XmlWriter)
WriteEndElement()

Menutup satu elemen dan memunculkan cakupan namespace yang sesuai.

WriteEndElementAsync()

Secara asinkron menutup satu elemen dan memunculkan cakupan namespace yang sesuai.

(Diperoleh dari XmlWriter)
WriteEntityRef(String)

Menulis referensi entitas sebagai &name;.

WriteEntityRefAsync(String)

Secara asinkron menulis referensi entitas sebagai &name;.

(Diperoleh dari XmlWriter)
WriteFullEndElement()

Menutup satu elemen dan memunculkan cakupan namespace yang sesuai.

WriteFullEndElementAsync()

Secara asinkron menutup satu elemen dan memunculkan cakupan namespace yang sesuai.

(Diperoleh dari XmlWriter)
WriteName(String)

Menuliskan nama yang ditentukan, memastikannya adalah nama yang valid sesuai dengan rekomendasi W3C XML 1.0.

WriteNameAsync(String)

Secara asinkron menuliskan nama yang ditentukan, memastikannya adalah nama yang valid sesuai dengan rekomendasi XML 1.0 W3C (https://www.w3.org/TR/1998/REC-xml-19980210#NT-Name).

(Diperoleh dari XmlWriter)
WriteNmToken(String)

Menuliskan nama yang ditentukan, memastikan nama tersebut valid NmToken sesuai dengan rekomendasi W3C XML 1.0.

WriteNmTokenAsync(String)

Secara asinkron menuliskan nama yang ditentukan, memastikannya adalah NmToken yang valid sesuai dengan rekomendasi XML 1.0 W3C (https://www.w3.org/TR/1998/REC-xml-19980210#NT-Name).

(Diperoleh dari XmlWriter)
WriteNode(XmlReader, Boolean)

Ketika ditimpa di kelas turunan, salin semuanya dari pembaca ke penulis dan memindahkan pembaca ke awal saudara kandung berikutnya.

(Diperoleh dari XmlWriter)
WriteNode(XPathNavigator, Boolean)

Menyalin semuanya dari XPathNavigator objek ke penulis. Posisi tetap XPathNavigator tidak berubah.

(Diperoleh dari XmlWriter)
WriteNodeAsync(XmlReader, Boolean)

Secara asinkron menyalin semuanya dari pembaca ke penulis dan memindahkan pembaca ke awal saudara kandung berikutnya.

(Diperoleh dari XmlWriter)
WriteNodeAsync(XPathNavigator, Boolean)

Secara asinkron menyalin semuanya dari XPathNavigator objek ke penulis. Posisi tetap XPathNavigator tidak berubah.

(Diperoleh dari XmlWriter)
WriteProcessingInstruction(String, String)

Menulis instruksi pemrosesan dengan spasi antara nama dan teks sebagai berikut: <?name text?>.

WriteProcessingInstructionAsync(String, String)

Secara asinkron menulis instruksi pemrosesan dengan spasi antara nama dan teks sebagai berikut: <?name text?>.

(Diperoleh dari XmlWriter)
WriteQualifiedName(String, String)

Menulis nama yang memenuhi syarat namespace layanan. Metode ini mencari awalan yang berada dalam cakupan untuk namespace yang diberikan.

WriteQualifiedNameAsync(String, String)

Secara asinkron menuliskan nama yang memenuhi syarat namespace. Metode ini mencari awalan yang berada dalam cakupan untuk namespace yang diberikan.

(Diperoleh dari XmlWriter)
WriteRaw(Char[], Int32, Int32)

Menulis markup mentah secara manual dari buffer karakter.

WriteRaw(String)

Menulis markup mentah secara manual dari string.

WriteRawAsync(Char[], Int32, Int32)

Menulis markup mentah secara asinkron secara manual dari buffer karakter.

(Diperoleh dari XmlWriter)
WriteRawAsync(String)

Menulis markup mentah secara asinkron secara manual dari string.

(Diperoleh dari XmlWriter)
WriteStartAttribute(String, String, String)

Menulis awal atribut.

WriteStartAttribute(String, String)

Menulis awal atribut dengan nama lokal dan URI namespace yang ditentukan.

(Diperoleh dari XmlWriter)
WriteStartAttribute(String)

Menulis awal atribut dengan nama lokal yang ditentukan.

(Diperoleh dari XmlWriter)
WriteStartAttributeAsync(String, String, String)

Secara asinkron menulis awal atribut dengan awalan, nama lokal, dan URI namespace yang ditentukan.

(Diperoleh dari XmlWriter)
WriteStartDocument()

Menulis deklarasi XML dengan versi "1.0".

WriteStartDocument(Boolean)

Menulis deklarasi XML dengan versi "1.0" dan atribut mandiri.

WriteStartDocumentAsync()

Menulis deklarasi XML secara asinkron dengan versi "1.0".

(Diperoleh dari XmlWriter)
WriteStartDocumentAsync(Boolean)

Secara asinkron menulis deklarasi XML dengan versi "1.0" dan atribut mandiri.

(Diperoleh dari XmlWriter)
WriteStartElement(String, String, String)

Menulis tag mulai yang ditentukan dan mengaitkannya dengan namespace dan awalan yang diberikan.

WriteStartElement(String, String)

Saat ditimpa di kelas turunan, menulis tag mulai yang ditentukan dan mengaitkannya dengan namespace yang diberikan.

(Diperoleh dari XmlWriter)
WriteStartElement(String)

Saat ditimpa di kelas turunan, tulis tag mulai dengan nama lokal yang ditentukan.

(Diperoleh dari XmlWriter)
WriteStartElementAsync(String, String, String)

Secara asinkron menulis tag mulai yang ditentukan dan mengaitkannya dengan namespace dan awalan yang diberikan.

(Diperoleh dari XmlWriter)
WriteString(String)

Menulis konten teks yang diberikan.

WriteStringAsync(String)

Menulis konten teks yang diberikan secara asinkron.

(Diperoleh dari XmlWriter)
WriteSurrogateCharEntity(Char, Char)

Menghasilkan dan menulis entitas karakter pengganti untuk pasangan karakter pengganti.

WriteSurrogateCharEntityAsync(Char, Char)

Secara asinkron menghasilkan dan menulis entitas karakter pengganti untuk pasangan karakter pengganti.

(Diperoleh dari XmlWriter)
WriteValue(Boolean)

Boolean Menulis nilai.

(Diperoleh dari XmlWriter)
WriteValue(DateTime)

DateTime Menulis nilai.

(Diperoleh dari XmlWriter)
WriteValue(DateTimeOffset)

DateTimeOffset Menulis nilai.

(Diperoleh dari XmlWriter)
WriteValue(Decimal)

Decimal Menulis nilai.

(Diperoleh dari XmlWriter)
WriteValue(Double)

Double Menulis nilai.

(Diperoleh dari XmlWriter)
WriteValue(Int32)

Int32 Menulis nilai.

(Diperoleh dari XmlWriter)
WriteValue(Int64)

Int64 Menulis nilai.

(Diperoleh dari XmlWriter)
WriteValue(Object)

Menulis nilai objek.

(Diperoleh dari XmlWriter)
WriteValue(Single)

Menulis angka floating-point presisi tunggal.

(Diperoleh dari XmlWriter)
WriteValue(String)

String Menulis nilai.

(Diperoleh dari XmlWriter)
WriteWhitespace(String)

Menuliskan ruang kosong yang diberikan.

WriteWhitespaceAsync(String)

Secara asinkron menulis ruang kosong yang diberikan.

(Diperoleh dari XmlWriter)

Implementasi Antarmuka Eksplisit

Nama Deskripsi
IDisposable.Dispose()

Untuk deskripsi anggota ini, lihat Dispose().

(Diperoleh dari XmlWriter)

Metode Ekstensi

Nama Deskripsi
ConfigureAwait(IAsyncDisposable, Boolean)

Mengonfigurasi bagaimana menunggu tugas yang dikembalikan dari asinkron sekali pakai akan dilakukan.

Berlaku untuk

Lihat juga