Lesen von typisierten Daten
Die XmlReader-Klasse lässt zu, dass Aufrufer XML-Daten lesen und Werte als einfach typisierte CLR-Werte (Common Language Runtime) anstatt als Zeichenfolgen zurückgeben. Mithilfe der bereitgestellten Methoden können Benutzer die Werte mithilfe von Systemtypen anstatt mithilfe von Zeichenfolgen abrufen. Diese neuen Methoden ermöglichen Benutzern das Abrufen von Werten in der Darstellung, die für die Codierung am besten geeignet ist, ohne manuelle Konvertierungen und Analysen von Werten durchführen zu müssen.
Wenn den XML-Daten keine Schema- oder Datentypinformationen zugeordnet sind, versucht die XmlReader-Klasse, den Knotenwert in den angegebenen CLR-Typ zu konvertieren. Wenn Sie beispielsweise die ReadContentAsBoolean-Methode aufrufen, versucht der Reader, den Text in ein Boolean-Objekt zu konvertieren.
Die XmlReader-Klasse verwendet die im W3C-Dokument XML Schema Part 2: Datatypes definierten Regeln.
Typisierter Inhalt
Mithilfe der Methoden ReadContentAsBoolean, ReadContentAsDateTime, ReadContentAsDouble, ReadContentAsLong, ReadContentAsInt und ReadContentAsString wird ein bestimmtes CLR-Objekt zurückgegeben. Diese Methoden lesen den Textinhalt an der aktuellen Position des Readers und konvertieren diesen in den angeforderten Rückgabetyp. Text, Leerraum, signifikanter Leerraum und CDATA-Abschnitte sind verkettet. Kommentare und Verarbeitungsanweisungen werden übersprungen und Entitätsverweise automatisch aufgelöst.
Mithilfe der ReadContentAs-Methode wird der Textinhalt gelesen und ein Objekt vom angegebenen Typ zurückgegeben.
Die ReadContentAsObject-Methode gibt eine geschachtelte CLR des am besten geeigneten Typs zurück, der von der ValueType-Eigenschaft angegeben wird. Wenn der Inhalt nicht typisiert ist, gibt der Reader den Inhalt als Zeichenfolge zurück.
Nach dem Aufrufen einer der ReadContentAs-Methoden, wird der Reader auf dem nächsten Element-Knoten oder dem nächsten EndElement-Knoten positioniert.
In der folgenden Tabelle wird veranschaulicht, wie die ReadContentAs-Methoden die einzelnen Knotentypen behandeln.
XmlNodeType |
Rückgabewert |
Verhalten des Readers |
---|---|---|
Text CDATA Whitespace SignificantWhitespace EntityReference EndEntity |
Verketteter Inhalt von Text, CDATA, Leerraum und signifikantem Leerraumknoten, konvertiert in den angeforderten Typ. |
Wird zum nächsten Anfangselement- oder Endelementtag verschoben. Entitätsverweise werden automatisch erweitert. |
Attribut |
Wie XmlConvert.ToXXX für den Attributwert. |
Der Reader behält die aktuelle Position bei. |
Comment ProcessingInstruction |
Ignoriert die Verarbeitungsanweisung oder den Kommentar und liest den verketteten Textinhalt, der auf die Verarbeitungsanweisung oder den Kommentar folgt. |
Wird zum nächsten Anfangselement- oder Endelementtag verschoben. Entitätsverweise werden automatisch erweitert. |
EndElement |
Eine leere Zeichenfolge. |
Der Reader behält die aktuelle Position bei. |
Element XmlDeclaration None Document DocumentType Notation Entity DocumentFragment |
Es wird eine InvalidOperationException ausgelöst. |
Nicht definiert, der Reader behält jedoch i. d. R. die aktuelle Position bei. |
Typisierter Elementinhalt
Die XmlReader-Klasse verfügt über Methoden, die speziell zum Lesen von typisiertem Elementinhalt entworfen wurden. Diese Methoden können nur für Elementknotentypen aufgerufen werden. Diese Methoden können nur für Elemente verwendet werden, die untergeordnete Elemente oder gemischten Inhalt enthalten. Bei einem Aufruf liest das XmlReader-Objekt das Anfangstag und den Elementinhalt und wird hinter das Endelementtag verschoben. Verarbeitungsanweisungen und Kommentare werden ignoriert und Entitäten erweitert.
Die Methoden ReadElementContentAsBoolean, ReadElementContentAsDateTime, ReadElementContentAsDouble, ReadElementContentAsLong, ReadElementContentAsInt und ReadElementContentAsString lesen Elementinhalt und geben ein bestimmtes CLR-Objekt zurück.
Mithilfe der ReadElementContentAs-Methode wird der Elementinhalt gelesen und ein Objekt vom angegebenen Typ zurückgegeben.
Die ReadElementContentAsObject-Methode gibt eine geschachtelte CLR des am besten geeigneten Typs zurück, der von der ValueType-Eigenschaft angegeben wird. Im Thema Zuordnen von XML-Datentypen zu CLR-Typen wird beschrieben, wie mit derXmlReader-Klasse der am besten geeignete CLR-Typ ermittelt wird. Wenn der Inhalt nicht typisiert ist, gibt der Reader den Inhalt als Zeichenfolge zurück.
Siehe auch
Konzepte
Lesen von XML mit dem "XmlReader"
Vorgehensweise: Lesen von typisierten Daten mithilfe einer Schemazuordnung
Vorgehensweise: Lesen von typisierten Daten, die keine Schemazuordnung aufweisen