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 (XmlReader, Boolean)

 

Date de publication : novembre 2016

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

Espace de noms:   System.Xml
Assembly:  System.Xml (dans System.Xml.dll)

public virtual void WriteAttributes(
	XmlReader reader,
	bool defattr
)

Paramètres

reader
Type: System.Xml.XmlReader

Le XmlReader à partir duquel copier les attributs.

defattr
Type: System.Boolean

true Pour copier les attributs par défaut à partir de la XmlReader; Sinon, false.

Exception Condition
ArgumentNullException

reader a la valeur null.

XmlException

Le lecteur n’est pas positionné sur un element, attribute ou XmlDeclaration nœud.

InvalidOperationException

Un XmlWriter méthode a été appelée avant la fin d'une opération asynchrone précédente. Dans ce cas, InvalidOperationException est levée avec le message « une opération asynchrone est déjà en cours. »

Si le lecteur est positionné sur un element nœud WriteAttributes copie tous les attributs contenus. Si le lecteur est positionné sur un attribute nœud, cette méthode écrit l’attribut actuel, puis le reste des attributs jusqu'à la balise de fermeture de l’élément. Si le lecteur est positionné sur un XmlDeclaration nœud, cette méthode écrit tous les attributs de la déclaration. Si le lecteur est positionné sur un autre type de nœud cette méthode lève un XmlException.

Si cette méthode est appelée à l’aide de XmlValidatingReader, pour vous assurer de tout contenu (développé à partir des entités) pouvant entraîner un document non valide est remplacé lors de l’écriture de XML bien formé. Par exemple, si un attribut inclut une > entité qui a été développée pour garantir un document correct développé > est remplacé lors de son écriture avec >.

Pour obtenir la version asynchrone de cette méthode, consultez la page WriteAttributesAsync.

L’exemple suivant copie tous les éléments dans la sortie, modifie les noms de balises en majuscules et copie tous les attributs inchangés.

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

L’exemple utilise le fichier test1.xml, comme entrée.

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

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 1.1
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0
Windows Phone
Disponible depuis 8.1
Retour au début
Afficher: