XmlWriter.WriteAttributes(XmlReader, Boolean) Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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 > kibontott entitást, annak érdekében, hogy a kibontott > dokumentum megfelelően formázott legyen, amikor ki van írva.>
A metódus aszinkron verziójáról lásd WriteAttributesAsync: .