Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

XmlWriter.WriteAttributes, méthode

En cas de substitution dans une classe dérivée, écrit tous les attributs trouvés à la position actuelle dans XmlReader.

Espace de noms :  System.Xml
Assemblys :   System.Xml.ReaderWriter (dans System.Xml.ReaderWriter.dll)
  System.Xml (dans System.Xml.dll)

public virtual void WriteAttributes(
	XmlReader reader,
	bool defattr
)

Paramètres

reader
Type : System.Xml.XmlReader
XmlReader à partir duquel les attributs doivent être copiés.
defattr
Type : System.Boolean
true pour copier les attributs par défaut à partir de XmlReader ; sinon, false.

ExceptionCondition
ArgumentNullException

reader is null.

XmlException

The reader is not positioned on an element, attribute or XmlDeclaration node.

InvalidOperationException

An XmlWriter method was called before a previous asynchronous operation finished. In this case, InvalidOperationException is thrown with the message “An asynchronous operation is already in progress.”

If the reader is positioned on an element node WriteAttributes copies all the contained attributes. If the reader is positioned on an attribute node, this method writes the current attribute, then the rest of the attributes until the element closing tag. If the reader is positioned on an XmlDeclaration node, this method writes all the attributes in the declaration. If the reader is positioned on any other node type this method throws an XmlException.

If this method is called using XmlValidatingReader, to ensure well-formed XML any content (which has been expanded from the entities) that could result in an invalid document is replaced when written. For example, if an attribute includes an > entity that has been expanded, to ensure a well-formed document the expanded > is replaced when written out with >.

For the asynchronous version of this method, see WriteAttributesAsync.

The following example copies all the elements to the output, changes the tag names to upper case, and copies all the attributes unchanged.


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


The example uses the file, test1.xml, as input.


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


.NET Framework

Pris en charge dans : 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

.NET pour les applications Windows Phone

Pris en charge dans : Windows Phone 8.1, Windows Phone Silverlight 8

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

.NET pour les applications du Windows Store

Pris en charge dans :

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

.NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

AJOUTER
Afficher: