Freigeben über


XmlReader.ReadOuterXml-Methode

Ruft beim Überschreiben in einer abgeleiteten Klasse den Inhalt (einschließlich Markup) ab, der diesen Knoten und alle untergeordneten Elemente darstellt.

Namespace: System.Xml
Assembly: System.Xml (in system.xml.dll)

Syntax

'Declaration
Public Overridable Function ReadOuterXml As String
'Usage
Dim instance As XmlReader
Dim returnValue As String

returnValue = instance.ReadOuterXml
public virtual string ReadOuterXml ()
public:
virtual String^ ReadOuterXml ()
public String ReadOuterXml ()
public function ReadOuterXml () : String

Rückgabewert

Wenn der Reader auf einem Elementknoten oder einem Attributknoten positioniert ist, gibt diese Methode den gesamten XML-Inhalt (einschließlich Markup) des aktuellen Knotens sowie aller untergeordneten Elemente zurück. Andernfalls wird eine leere Zeichenfolge zurückgegeben.

Ausnahmen

Ausnahmetyp Bedingung

XmlException

Das XML war nicht wohlgeformt, oder bei der XML-Analyse ist ein Fehler aufgetreten.

Hinweise

Diese Methode ist mit ReadInnerXml vergleichbar, gibt jedoch auch die Start- und Endtags zurück.

Diese Methode behandelt Element- und Attributknoten wie folgt:

Knotentyp

Position vor dem Aufruf

XML-Fragment

Rückgabewert

Position nach dem Aufruf

Element

Auf dem item1-Starttag.

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

<item1>text1</item1>

Auf dem item2-Starttag.

Attribute

Auf dem attr1-Attributknoten.

<item attr1="val1" attr2="val2">text</item>

attr1="val1"

Verbleibt auf dem attr1-Attributknoten.

Wenn der Reader auf einem Endknoten positioniert ist, sind der Aufruf von ReadOuterXml und der Aufruf von Read äquivalent. Die Methode gibt String.Empty zurück (außer bei Attributknoten, bei denen das Attributmarkup zurückgegeben wird).

Diese Methode prüft auf wohlgeformtes XML. Wenn ReadOuterXml von einem XmlValidatingReader aufgerufen wird, validiert diese Methode auch den zurückgegebenen Inhalt.

Gemäß ihrer Implementierung in den Klassen XmlNodeReader, XmlTextReader und XmlValidatingReader unterstützt die ReadOuterXml-Methode Namespaces. Für den XML-Text <A xmlns:S="urn:1"><S:B>hello</S:B></A> gibt ReadOuterXml den Inhalt <S:B xmlns:S="urn:1">hello<S:B/> zurück, wenn der Reader auf dem S:B-Starttag positioniert ist.

Beispiel

Im folgenden Beispiel werden die ReadInnerXml-Methode und die ReadOuterXml-Methode verglichen.

' 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
// 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());      

}

Im Beispiel wird die Datei 2books.xml als Eingabe verwendet.

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

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

XmlReader-Klasse
XmlReader-Member
System.Xml-Namespace

Weitere Ressourcen

Lesen von XML mit dem "XmlReader"