XmlWriter.WriteAttributes(XmlReader, Boolean) Método

Definición

Cuando se invalida en una clase derivada, escribe todos los atributos que se encuentran en la posición actual en XmlReader.

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

Parámetros

reader
XmlReader

XmlReader del que se van a copiar los atributos.

defattr
Boolean

Es true para copiar los atributos predeterminados de XmlReader; en caso contrario, es false.

Excepciones

reader es null.

El lector no está en ningún nodo element, attribute o XmlDeclaration.

Se llamó un método XmlWriter antes de que se termine una operación asincrónica anterior. En este caso, se genera InvalidOperationException con el mensaje “Ya hay una operación asincrónica en curso”.

Ejemplos

En el ejemplo siguiente se copian todos los elementos en la salida, se cambian los nombres de etiqueta a mayúsculas y se copian todos los atributos sin modificar.

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

En el ejemplo se usa el archivo , test1.xmlcomo entrada.

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

Comentarios

Si el lector se coloca en un element nodo WriteAttributes copia todos los atributos contenidos. Si el lector se coloca en un attribute nodo, este método escribe el atributo actual, el resto de los atributos hasta la etiqueta de cierre del elemento. Si el lector se coloca en un XmlDeclaration nodo, este método escribe todos los atributos de la declaración. Si el lector se coloca en cualquier otro tipo de nodo, este método produce una XmlExceptionexcepción .

Si se llama a este método mediante XmlValidatingReader, para asegurarse de que xml tiene el formato correcto cualquier contenido (que se ha expandido desde las entidades) que podría dar lugar a que un documento no válido se reemplace cuando se escribe. Por ejemplo, si un atributo incluye una &gt; entidad que se ha expandido, para asegurarse de que un documento bien formado, el > expandido se reemplaza cuando se escribe con &gt;.

Para obtener la versión asincrónica de este método, vea WriteAttributesAsync.

Se aplica a

Producto Versiones
.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