XmlWriter.WriteAttributes(XmlReader, Boolean) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Türetilmiş bir sınıfta geçersiz kılındığında, içindeki geçerli konumda XmlReaderbulunan tüm öznitelikleri yazar.
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)
Parametreler
- reader
- XmlReader
XmlReader
Özniteliklerin kopyalandığı yer.
- defattr
- Boolean
true
öğesinin varsayılan özniteliklerini XmlReader
kopyalamak için ; aksi takdirde . false
Özel durumlar
reader
, null
değeridir.
Okuyucu bir element
veya attribute
XmlDeclaration
düğümünde konumlandırılmaz.
Önceki XmlWriter bir zaman uyumsuz işlem tamamlanmadan önce bir yöntem çağrıldı. Bu durumda, InvalidOperationException "Zaman uyumsuz bir işlem zaten devam ediyor" iletisiyle oluşturulur.
Örnekler
Aşağıdaki örnekte tüm öğeler çıkışa kopyalanır, etiket adları büyük harfe değiştirilir ve tüm öznitelikler değiştirilmeden kopyalanır.
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
void main()
{
XmlReader^ reader = XmlReader::Create( L"test1.xml" );
XmlWriterSettings^ settings = gcnew 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();
}
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
Örnekte giriş olarak dosyası test1.xml
kullanılır.
<test a="1" b="2">
<item c="3" d="4" e="5" f="6"/>
</test>
Açıklamalar
Okuyucu bir element
düğüme WriteAttributes
konumlandırıldıysa, tüm kapsanan öznitelikleri kopyalar. Okuyucu bir attribute
düğüme konumlandırıldıysa, bu yöntem geçerli özniteliği yazar ve öğe kapanış etiketine kadar özniteliklerin geri kalanını yazar. Okuyucu bir XmlDeclaration
düğüme konumlandırıldıysa, bu yöntem bildirimdeki tüm öznitelikleri yazar. Okuyucu başka bir düğüm türüne konumlandırıldıysa, bu yöntem bir XmlExceptionoluşturur.
Bu yöntem kullanılarak XmlValidatingReaderçağrılırsa, iyi biçimlendirilmiş XML içeriği (varlıklardan genişletilmiştir) geçersiz bir belgeye neden olabilecek içeriğin yazıldığında değiştirilmesini sağlamak için kullanılır. Örneğin, bir öznitelik genişletilmiş bir >
varlık içeriyorsa, iyi biçimlendirilmiş bir belgeyi sağlamak için genişletilmiş > ile >
yazıldığında değiştirilir.
Bu yöntemin zaman uyumsuz sürümü için bkz WriteAttributesAsync. .