Auf Englisch lesen

Freigeben über


XmlWriter.WriteAttributes(XmlReader, Boolean) Methode

Definition

Schreibt beim Überschreiben in einer abgeleiteten Klasse sämtliche an der aktuellen Position gefundenen Attribute in den XmlReader.

C#
public virtual void WriteAttributes (System.Xml.XmlReader reader, bool defattr);

Parameter

reader
XmlReader

Der XmlReader, aus dem die Attribute kopiert werden sollen.

defattr
Boolean

true, um die Standardattribute aus dem XmlReader zu kopieren, andernfalls false.

Ausnahmen

reader ist null.

Der Reader ist nicht auf einem der Knoten element, attribute oder XmlDeclaration positioniert.

Eine XmlWriter-Methode wurde aufgerufen, bevor ein vorheriger asynchroner Vorgang abgeschlossen wurde. In diesem Fall wird InvalidOperationException mit der Meldung „Es wird bereits ein asynchroner Vorgang ausgeführt“ ausgelöst.

Beispiele

Im folgenden Beispiel werden alle Elemente in die Ausgabe kopiert, die Tagnamen in Großbuchstaben geändert und alle Attribute unverändert kopiert.

C#
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();
  }
}

Im Beispiel wird die Datei als test1.xmlEingabe verwendet.

XML
<test a="1" b="2">
    <item c="3" d="4" e="5" f="6"/>
</test>

Hinweise

Wenn der Leser auf einem element Knoten WriteAttributes positioniert ist, werden alle enthaltenen Attribute kopiert. Wenn der Leser auf einem attribute Knoten positioniert ist, schreibt diese Methode das aktuelle Attribut, dann die restlichen Attribute bis zum Schließen des Elements. Wenn der Leser auf einem XmlDeclaration Knoten positioniert ist, schreibt diese Methode alle Attribute in der Deklaration. Wenn der Reader auf einem anderen Knotentyp positioniert ist, löst diese Methode eine XmlException.

Wenn diese Methode mithilfe von "using XmlValidatingReader" aufgerufen wird, um sicherzustellen, dass alle inhalte (die aus den Entitäten erweitert wurden), die zu einem ungültigen Dokument führen können, wird beim Schreiben ersetzt. Wenn beispielsweise ein Attribut eine &gt; Entität enthält, die erweitert wurde, um sicherzustellen, dass ein gut gebildetes Dokument, das erweiterte >, ersetzt wird, wenn er durch &gt;geschrieben wird.

Die asynchrone Version dieser Methode finden Sie unter WriteAttributesAsync.

Gilt für

Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0