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