Nyelv

XmlWriter.WriteAttributes(XmlReader, Boolean) Metódus

Definíció

Ha egy származtatott osztályban felül van bírálva, a rendszer kiírja az összes attribútumot, amely a jelenlegi pozícióban található a 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)

Paraméterek

reader
XmlReader

Az XmlReader attribútumok másolásának célja.

defattr
Boolean

true az alapértelmezett attribútumok másolásához az XmlReader; egyéb esetben false.

Kivételek

reader az null.

Az olvasó nincs elhelyezve egy csomóponton element vagy attribute csomópontonXmlDeclaration.

Egy XmlWriter metódust hívtak meg, mielőtt egy korábbi aszinkron művelet befejeződött. Ebben az esetben InvalidOperationException a "Aszinkron művelet már folyamatban van" üzenet jelenik meg.

Példák

Az alábbi példa az összes elemet átmásolja a kimenetbe, nagybetűsre módosítja a címkeneveket, és az összes attribútumot változatlanul másolja.

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

A példa a fájlt test1.xmlhasználja bemenetként.

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

Megjegyzések

Ha az olvasó egy element csomóponton WriteAttributes van elhelyezve, az összes tartalmazott attribútumot átmásolja. Ha az olvasó egy attribute csomóponton van elhelyezve, ez a metódus az aktuális attribútumot írja, majd a többi attribútumot az elem záró címkéjéig. Ha az olvasó egy XmlDeclaration csomóponton van elhelyezve, ez a metódus a deklaráció összes attribútumát megírja. Ha az olvasó bármely más csomóponttípuson van elhelyezve, ez a metódus egy XmlException.

Ha ezt a metódust használja XmlValidatingReader, annak érdekében, hogy a rendszer megfelelően formázott XML-t biztosítson minden olyan tartalom (amely ki lett bontva az entitásokból), amelyek érvénytelen dokumentumot eredményezhetnek íráskor. Ha például egy attribútum tartalmaz egy &gt; kibontott entitást, annak érdekében, hogy a kibontott > dokumentum megfelelően formázott legyen, amikor ki van írva.&gt;

A metódus aszinkron verziójáról lásd WriteAttributesAsync: .

A következőre érvényes: