XmlReader.ReadInnerXml Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Wenn sie in einer abgeleiteten Klasse überschrieben werden, werden alle Inhalte, einschließlich Markup, als Zeichenfolge gelesen.
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
Alle XML-Inhalte, einschließlich Markup, im aktuellen Knoten. Wenn der aktuelle Knoten keine untergeordneten Elemente aufweist, wird eine leere Zeichenfolge zurückgegeben.
Wenn der aktuelle Knoten weder ein Element noch ein Attribut ist, wird eine leere Zeichenfolge zurückgegeben.
Ausnahmen
Der XML-Code war nicht wohlgeformt, oder beim Analysieren des XML-Codes ist ein Fehler aufgetreten.
Eine XmlReader Methode wurde aufgerufen, bevor ein vorheriger asynchroner Vorgang abgeschlossen wurde. In diesem Fall InvalidOperationException wird die Meldung "Ein asynchroner Vorgang wird bereits ausgeführt" ausgelöst.
Beispiele
Im folgenden Beispiel werden die ReadInnerXml Methoden verglichen ReadOuterXml .
// 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. Wenn Sie beispielsweise Folgendes hatten:
<node>
this <child id="123"/>
</node>
ReadInnerXml gibt this <child id="123"/> zurück.
Diese Methode behandelt Element- und Attributknoten auf folgende Weise:
| Knotentyp | Position vor dem Anruf | XML-Fragment | Rückgabewert | Position nach dem Anruf |
|---|---|---|---|---|
Element |
Auf dem item1 Starttag. |
<Element1 Text1></Element1><Element2 Text2></Element2> | 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 Leser auf einem Blattknoten positioniert ist, entspricht der Aufruf dem ReadInnerXml Aufrufen Read. Die Methode gibt zurück String.Empty (mit Ausnahme von Attributknoten, in diesem Fall wird der Wert des Attributs zurückgegeben).
Diese Methode sucht nach wohlgeformten XML-Daten. Wenn ReadInnerXml von einer Methode XmlValidatingReaderaufgerufen wird, überprüft diese Methode auch den zurückgegebenen Inhalt.
Wie in den XmlNodeReaderKlassen implementiert, XmlTextReader ist XmlValidatingReader die ReadOuterXml Methode namespacefähig.
Die asynchrone Version dieser Methode finden Sie unter ReadInnerXmlAsync.