Partager via


Lecture de données typées

La classe XmlReader permet aux appelants de lire des données XML et de retourner des valeurs sous la forme de valeurs CLR (Common Language Runtime) de type simple plutôt que de chaînes. Grâce aux méthodes fournies, les utilisateurs peuvent obtenir les valeurs à l'aide de types de systèmes plutôt que de chaînes. Ces nouvelles méthodes permettent aux utilisateurs d'obtenir des valeurs dans la représentation la plus appropriée à la tâche de codage sans devoir effectuer manuellement des conversions de valeurs et des analyses.

Si les données XML ne sont associées à aucune information sur les types de données ou de schémas, la classe XmlReader tente de convertir la valeur du nœud en type CLR spécifié. Par exemple, si vous appelez la méthode ReadContentAsBoolean, le lecteur tente de convertir le texte en objet Boolean.

La classe XmlReader utilise les règles définies par la recommandation du W3C sur le schéma XML Part 2: Datatypes.

Contenu typé

Les méthodes ReadContentAsBoolean, ReadContentAsDateTime, ReadContentAsDouble, ReadContentAsLong, ReadContentAsInt et ReadContentAsString permettent de retourner un objet CLR spécifique. Ces méthodes lisent le contenu du texte à la position actuelle du lecteur et le convertissent en type de retour demandé. Le texte, les espaces blancs, les espaces blancs significatifs et les sections CDATA sont concaténés. Les commentaires et les instructions de traitement sont ignorés et les références d'entité sont automatiquement résolues.

La méthode ReadContentAs permet de lire le contenu du texte et retourne un objet du type spécifié.

La méthode ReadContentAsObject retourne une valeur CLR boxed du type le plus approprié, spécifié par la propriété ValueType. Si le contenu n'est pas typé, le lecteur retourne le contenu sous la forme d'une chaîne.

Après avoir appelé les méthodes ReadContentAs, le lecteur est positionné sur le nœud Element ou EndElement suivant.

Le tableau suivant décrit le traitement de chaque type de nœud par les méthodes ReadContentAs.

XmlNodeType

Valeur de retour

Comportement du lecteur

Text

CDATA

Whitespace

SignificantWhitespace

EntityReference

EndEntity

Nœuds de contenus de texte, CDATA, d'espace blanc et d'espace blanc significatif concaténés convertis en type demandé.

Avance jusqu'à la balise d'élément de début ou de fin suivante. Les références d'entité sont automatiquement développées.

Attribute

Identique à XmlConvert.ToXXX pour la valeur de l'attribut.

Le lecteur reste dans sa position actuelle.

Comment

ProcessingInstruction

Ignore l'instruction de traitement ou le commentaire et lit le contenu du texte concaténé qui suit l'instruction ou le commentaire.

Avance jusqu'à la balise d'élément de début ou de fin suivante. Les références d'entité sont automatiquement développées.

EndElement

Chaîne vide.

Le lecteur reste dans sa position actuelle.

Element

XmlDeclaration

None

Document

DocumentType

Notation

Entity

DocumentFragment

Un objet InvalidOperationException est levé.

Non défini, bien que le lecteur reste généralement dans sa position actuelle.

Contenu d'élément typé

La classe XmlReader contient des méthodes spécifiquement conçues pour lire le contenu d'éléments typés. Ces méthodes ne peuvent être appelées que pour les types de nœuds d'élément. Elles peuvent être utilisées pour des éléments qui comportent des éléments enfants ou du contenu mixte. S'il est appelé, l'objet XmlReader lit la balise de début et le contenu de l'élément, puis avance jusqu'après la balise d'élément de fin. Les instructions de traitement et les commentaires sont ignorés et les entités sont développées.

Les méthodes ReadElementContentAsBoolean, ReadElementContentAsDateTime, ReadElementContentAsDouble, ReadElementContentAsLong, ReadElementContentAsInt et ReadElementContentAsString lisent le contenu de l'élément et retournent un objet CLR spécifique.

La méthode ReadElementContentAs permet de lire le contenu de l'élément et retourne un objet du type spécifié.

La méthode ReadElementContentAsObject retourne une valeur CLR boxed du type le plus approprié, spécifié par la propriété ValueType. La rubrique Mappage entre types de données XML et types CLR décrit la manière dont la classe XmlReader détermine le type de valeur CLR le plus approprié. Si le contenu n'est pas typé, le lecteur retourne le contenu sous la forme d'une chaîne.

Voir aussi

Concepts

Lecture de XML avec XmlReader

Procédure : lecture de données typées à l'aide d'un mappage de schéma

Procédure : lecture de données typées sans mappage de schéma

Mappage entre types de données XML et types CLR