XmlReader.ReadOuterXml Methode

Definitie

Wanneer deze wordt overschreven in een afgeleide klasse, leest u de inhoud, inclusief markeringen, die dit knooppunt en alle onderliggende items vertegenwoordigen.

public:
 virtual System::String ^ ReadOuterXml();
public virtual string ReadOuterXml();
abstract member ReadOuterXml : unit -> string
override this.ReadOuterXml : unit -> string
Public Overridable Function ReadOuterXml () As String

Retouren

Als de lezer zich op een element of een kenmerkknooppunt bevindt, retourneert deze methode alle XML-inhoud, inclusief markeringen, van het huidige knooppunt en alle onderliggende items; anders wordt er een lege tekenreeks geretourneerd.

Uitzonderingen

De XML is niet goed opgemaakt of er is een fout opgetreden tijdens het parseren van de XML.

Er XmlReader is een methode aangeroepen voordat een vorige asynchrone bewerking is voltooid. In dit geval InvalidOperationException wordt het bericht 'Er wordt al een asynchrone bewerking uitgevoerd'.

Voorbeelden

In het volgende voorbeeld worden de ReadInnerXml en ReadOuterXml methoden vergeleken.

// 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());
}
' Load the file and ignore all white space.
Dim settings As New XmlReaderSettings()
settings.IgnoreWhitespace = True
Using reader As XmlReader = 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())

End Using

In het voorbeeld wordt een bestand als invoer gebruikt 2books.xml .

<!--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>

Opmerkingen

Deze methode is vergelijkbaar met behalve ReadInnerXml dat deze ook de begin- en eindtags retourneert.

Met deze methode worden element- en kenmerkknooppunten op de volgende manier verwerkt:

Knooppunttype Positie vóór het gesprek XML-fragment Retourwaarde Positie na het gesprek
Element Op de item1 starttag. <item1>tekst1</item1><item2 tekst2></item2> <item1>tekst1</item1> Op de item2 starttag.
Attribute Op het attr1 kenmerkknooppunt. <item attr1="val1" attr2="val2">text</item> attr1="val1" Blijft op het attr1 kenmerkknooppunt staan.

Als de lezer op een leaf-knooppunt wordt weergegeven, is het aanroepen ReadOuterXml gelijk aan het aanroepen Read. De methode retourneert String.Empty (met uitzondering van kenmerkknooppunten, in welk geval de kenmerkmarkeringen worden geretourneerd).

Met deze methode wordt gecontroleerd op goed opgemaakte XML. Als ReadOuterXml deze methode wordt aangeroepen vanuit een XmlValidatingReader, valideert deze methode ook de geretourneerde inhoud

Zoals geïmplementeerd in de XmlNodeReaderen XmlTextReaderXmlValidatingReader klassen is de ReadOuterXml methode naamruimtebewust. Als de lezer op de starttag is ingesteld op de volgende XML-tekst<A xmlns:S="urn:1"><S:B>hello</S:B></A>, S:B wordt deze geretourneerdReadOuterXml.<S:B xmlns:S="urn:1">hello<S:B/>

Zie voor de asynchrone versie van deze methode ReadOuterXmlAsync.

Van toepassing op