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

XmlReader.ReadOuterXml méthode ()

 

Date de publication : novembre 2016

En cas de substitution dans une classe dérivée, lit le contenu, y compris le balisage, représentant ce nœud et tous ses enfants.

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

public virtual string ReadOuterXml()

Valeur de retour

Type: System.String

Si le lecteur est placé sur un nœud d'élément ou d'attribut, cette méthode retourne tout le contenu XML, y compris le balisage, du nœud actuel et de tous ses enfants ; sinon, elle retourne une chaîne vide.

Exception Condition
XmlException

Le code XML n’était pas correctement formé ou une erreur s’est produite lors de l’analyse du XML.

InvalidOperationException

Un XmlReader 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. »

Cette méthode est similaire à ReadInnerXml mais elle retourne également les balises de début et de fin.

Cette méthode gère les nœuds d’élément et d’attribut de la manière suivante :

Type de nœud

Position avant l’appel

Fragment XML

Valeur de retour

Position après l’appel

Element

Sur la balise de début item1.

< item1 > text1 < / item1 >< item2 > text2 < / item2 >

< item1 > text1 < / item1 >

Sur la balise de début item2.

Attribute

Sur le nœud d'attribut attr1.

< élément attr1 = « val1 » attr2 = « val2 » > texte < /Item >

attr1 = « val1 »

Reste sur le nœud d'attribut attr1.

Si le lecteur se trouve sur un nœud sans descendant, appeler la méthode ReadOuterXml équivaut à appeler la méthode Read. La méthode retourne String.Empty (sauf pour les nœuds d’attribut, auquel cas la balise d’attribut est retournée).

Cette méthode vérifie le code XML bien formé. Si ReadOuterXml est appelée depuis un XmlValidatingReader, cette méthode valide également le contenu retourné

Tel qu’implémenté dans le XmlNodeReader, XmlTextReader et XmlValidatingReader classes le ReadOuterXml méthode est conscient de l’espace de noms. Le texte XML suivant <A xmlns:S="urn:1"><S:B>hello</S:B></A>, si le lecteur est positionné sur le S:B Démarrer balise, ReadOuterXml renvoie <S:B xmlns:S="urn:1">hello<S:B/>.

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

L’exemple suivant compare les ReadInnerXml et ReadOuterXml méthodes.

// Load the file and ignore all white space.
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreWhitespace = true;
using (XmlReader reader = XmlReader.Create("2books.xml")) {

  // Moves the reader to the root element.
  reader.MoveToContent();

  // Moves to book node.
  reader.Read(); 

  // Note that ReadInnerXml only returns the markup of the node's children
  // so the book's attributes are not returned.
  Console.WriteLine("Read the first book using ReadInnerXml...");
  Console.WriteLine(reader.ReadInnerXml());

  // ReadOuterXml returns the markup for the current node and its children
  // so the book's attributes are also returned.
  Console.WriteLine("Read the second book using ReadOuterXml...");
  Console.WriteLine(reader.ReadOuterXml());      

}

L’exemple utilise 2books.xml comme fichier d’entrée.

<!--sample XML fragment-->
<bookstore>
  <book genre='novel' ISBN='10-861003-324'>
    <title>The Handmaid's Tale</title>
    <price>19.95</price>
  </book>
  <book genre='novel' ISBN='1-861001-57-5'>
    <title>Pride And Prejudice</title>
    <price>24.95</price>
  </book>
</bookstore>

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: