XmlWriter.WriteAttributes(XmlReader, Boolean) 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, tulis semua atribut yang ditemukan pada posisi saat ini di XmlReader.
public:
virtual void WriteAttributes(System::Xml::XmlReader ^ reader, bool defattr);
public virtual void WriteAttributes(System.Xml.XmlReader reader, bool defattr);
abstract member WriteAttributes : System.Xml.XmlReader * bool -> unit
override this.WriteAttributes : System.Xml.XmlReader * bool -> unit
Public Overridable Sub WriteAttributes (reader As XmlReader, defattr As Boolean)
Parameter
- reader
- XmlReader
dari XmlReader mana untuk menyalin atribut.
- defattr
- Boolean
true untuk menyalin atribut default dari XmlReader; jika tidak, false.
Pengecualian
reader adalah null.
Pembaca tidak diposisikan pada elementsimpul , attribute atau XmlDeclaration .
Metode XmlWriter dipanggil sebelum operasi asinkron sebelumnya selesai. Dalam hal ini, InvalidOperationException dilemparkan dengan pesan "Operasi asinkron sudah berlangsung."
Contoh
Contoh berikut menyalin semua elemen ke output, mengubah nama tag menjadi huruf besar, dan menyalin semua atribut yang tidak berubah.
using System;
using System.IO;
using System.Xml;
public class Sample {
public static void Main() {
XmlReader reader = XmlReader.Create("test1.xml");
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
XmlWriter writer = XmlWriter.Create(Console.Out);
while (reader.Read()) {
if (reader.NodeType == XmlNodeType.Element) {
writer.WriteStartElement(reader.Name.ToUpper());
writer.WriteAttributes(reader, false);
if (reader.IsEmptyElement) writer.WriteEndElement();
}
else if (reader.NodeType == XmlNodeType.EndElement) {
writer.WriteEndElement();
}
}
writer.Close();
reader.Close();
}
}
Option Strict
Option Explicit
Imports System.IO
Imports System.Xml
Public Class Sample
Public Shared Sub Main()
Dim reader As XmlReader = XmlReader.Create("test1.xml")
Dim settings As XmlWriterSettings = new XmlWriterSettings()
settings.Indent = true
Dim writer As XmlWriter = XmlWriter.Create(Console.Out)
While reader.Read()
If reader.NodeType = XmlNodeType.Element Then
writer.WriteStartElement(reader.Name.ToUpper())
writer.WriteAttributes(reader, False)
If reader.IsEmptyElement Then
writer.WriteEndElement()
End If
Else
If reader.NodeType = XmlNodeType.EndElement Then
writer.WriteEndElement()
End If
End If
End While
writer.Close()
reader.Close()
End Sub
End Class
Contohnya menggunakan file, test1.xml, sebagai input.
<test a="1" b="2">
<item c="3" d="4" e="5" f="6"/>
</test>
Keterangan
Jika pembaca diposisikan pada node elementWriteAttributes , salin semua atribut yang terkandung. Jika pembaca diposisikan pada simpul attribute , metode ini menulis atribut saat ini, maka atribut lainnya sampai tag penutup elemen. Jika pembaca diposisikan pada node XmlDeclaration , metode ini menulis semua atribut dalam deklarasi. Jika pembaca diposisikan pada jenis node lain, metode ini akan melempar XmlException.
Jika metode ini dipanggil menggunakan XmlValidatingReader, untuk memastikan XML yang terbentuk dengan baik konten apa pun (yang telah diperluas dari entitas) yang dapat mengakibatkan dokumen yang tidak valid diganti ketika ditulis. Misalnya, jika atribut menyertakan > entitas yang telah diperluas, untuk memastikan dokumen yang terbentuk dengan baik, yang diperluas > diganti saat ditulis dengan >.
Untuk versi asinkron dari metode ini, lihat WriteAttributesAsync.