XmlReader.ReadInnerXml Methode

Definition

Liest beim Überschreiben in einer abgeleiteten Klasse den gesamten Inhalt, einschließlich Markup, als Zeichenfolge.

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

Gibt zurück

Der gesamte XML-Inhalt (einschließlich Markup) im aktuellen Knoten. Wenn der aktuelle Knoten keine untergeordneten Elemente besitzt, wird eine leere Zeichenfolge zurückgegeben.

Wenn der aktuelle Knoten weder ein Element noch ein Attribut ist, wird eine leere Zeichenfolge zurückgegeben.

Ausnahmen

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

Eine XmlReader-Methode wurde aufgerufen, bevor ein vorheriger asynchroner Vorgang abgeschlossen wurde. In diesem Fall wird InvalidOperationException mit der Meldung „Es wird bereits ein asynchroner Vorgang ausgeführt“ ausgelöst.

Beispiele

Im folgenden Beispiel werden die ReadInnerXml Methoden und ReadOuterXml verglichen.

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

Im Beispiel wird die Datei als Eingabe verwendet 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>

Hinweise

Diese Methode gibt den gesamten Inhalt des aktuellen Knotens einschließlich des Markups zurück. Der aktuelle Knoten (Starttag) und der entsprechende Endknoten (Endtag) werden nicht zurückgegeben. Beispiel:

<node>
 this <child id="123"/>
</node>

ReadInnerXml gibt this <child id="123"/> zurück.

Diese Methode behandelt Element- und Attributknoten wie folgt:

Knotentyp Position vor dem Anruf XML-Fragment Rückgabewert Position nach dem Anruf
Element Auf dem item1-Starttag. <item1>text1</item1><item2>text2</item2> text1 Auf dem item2-Starttag.
Attribute Auf dem attr1-Attributknoten. <item attr1="val1" attr2="val2">text</item> val1 Verbleibt auf dem attr1-Attributknoten.

Wenn der Reader auf einem Endknoten positioniert ist, entspricht das Aufrufen von ReadInnerXml dem Aufrufen von Read. Die Methode gibt zurück String.Empty (mit Ausnahme von Attributknoten, in diesem Fall wird der Wert des Attributs zurückgegeben).

Mit dieser Methode wird auf wohlgeformte XML-Daten überprüft. Wenn ReadInnerXml von einem XmlValidatingReaderaufgerufen wird, überprüft diese Methode auch den zurückgegebenen Inhalt.

Wie in den XmlNodeReaderKlassen und implementiert, XmlTextReaderXmlValidatingReader ist die ReadOuterXml Methode namespacefähig.

Die asynchrone Version dieser Methode finden Sie unter ReadInnerXmlAsync.

Gilt für: