XmlReader.ReadInnerXml Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Wanneer deze wordt overschreven in een afgeleide klasse, leest u alle inhoud, inclusief markeringen, als een tekenreeks.
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
Retouren
Alle XML-inhoud, inclusief markeringen, in het huidige knooppunt. Als het huidige knooppunt geen onderliggende items bevat, wordt er een lege tekenreeks geretourneerd.
Als het huidige knooppunt geen element of kenmerk is, wordt 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 retourneert alle inhoud van het huidige knooppunt, inclusief de opmaak. Het huidige knooppunt (starttag) en het bijbehorende eindknooppunt (eindtag) worden niet geretourneerd. Als u bijvoorbeeld het volgende hebt:
<node>
this <child id="123"/>
</node>
ReadInnerXml geeft this <child id="123"/> terug
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> | tekst1 | Op de item2 starttag. |
Attribute |
Op het attr1 kenmerkknooppunt. |
<item attr1="val1" attr2="val2">text</item> | val1 | Blijft op het attr1 kenmerkknooppunt staan. |
Als de lezer op een leaf-knooppunt wordt weergegeven, is het aanroepen ReadInnerXml gelijk aan het aanroepen Read. De methode retourneert String.Empty (met uitzondering van kenmerkknooppunten, in welk geval de waarde van het kenmerk wordt geretourneerd).
Met deze methode wordt gecontroleerd op goed opgemaakte XML. Als ReadInnerXml 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.
Zie voor de asynchrone versie van deze methode ReadInnerXmlAsync.