Représente un lecteur fournissant un accès rapide, non mis en cache et en avant uniquement vers les données XML.
System.Xml.XmlReader
System.Xml.XmlDictionaryReader
System.Xml.XmlNodeReader
System.Xml.XmlTextReader
System.Xml.XmlValidatingReader
Espace de noms : System.Xml
Assembly : System.Xml (dans System.Xml.dll)
Public MustInherit Class XmlReader _ Implements IDisposable
public abstract class XmlReader : IDisposable
public ref class XmlReader abstract : IDisposable
[<AbstractClass>] type XmlReader = class interface IDisposable end
Le type XmlReader expose les membres suivants.
| Nom | Description | |
|---|---|---|
|
XmlReader | Initialise une nouvelle instance de la classe XmlReader. |
| Nom | Description | |
|---|---|---|
|
AttributeCount | En cas de substitution dans une classe dérivée, obtient le nombre d'attributs du nœud actuel. |
|
BaseURI | En cas de substitution dans une classe dérivée, obtient l'URI de base du nœud actuel. |
|
CanReadBinaryContent | Obtient une valeur qui indique si XmlReader implémente les méthodes de lecture de contenu binaire. |
|
CanReadValueChunk | Obtient une valeur indiquant si XmlReader implémente la méthode ReadValueChunk spécifiée. |
|
CanResolveEntity | Obtient une valeur indiquant si ce lecteur peut analyser et résoudre les entités. |
|
Depth | En cas de substitution dans une classe dérivée, obtient la profondeur du nœud actuel dans le document XML. |
|
EOF | En cas de substitution dans une classe dérivée, obtient une valeur indiquant si le lecteur est placé à la fin du flux. |
|
HasAttributes | Obtient une valeur indiquant si le nœud actuel possède des attributs. |
|
HasValue | En cas de substitution dans une classe dérivée, obtient une valeur indiquant si le nœud actuel peut posséder Value. |
|
IsDefault | En cas de substitution dans une classe dérivée, obtient une valeur indiquant si le nœud actuel est un attribut généré à partir de la valeur par défaut définie dans le DTD ou le schéma. |
|
IsEmptyElement | En cas de substitution dans une classe dérivée, obtient une valeur indiquant si le nœud actuel est un élément vide (par exemple, <MyElement/>). |
|
Item[Int32] | En cas de substitution dans une classe dérivée, obtient la valeur de l'attribut avec l'index spécifié. |
|
Item[String] | En cas de substitution dans une classe dérivée, obtient la valeur de l'attribut avec le Name spécifié. |
|
Item[String, String] | En cas de substitution dans une classe dérivée, obtient la valeur de l'attribut avec le LocalName et le NamespaceURI spécifiés. |
|
LocalName | En cas de substitution dans une classe dérivée, obtient le nom local du nœud actuel. |
|
Name | En cas de substitution dans une classe dérivée, obtient le nom qualifié du nœud actuel. |
|
NamespaceURI | En cas de substitution dans une classe dérivée, obtient l'URI de l'espace de noms (tel qu'il est défini dans la spécification relative aux espaces de noms du W3C) du nœud sur lequel le lecteur est placé. |
|
NameTable | En cas de substitution dans une classe dérivée, obtient le XmlNameTable associé à cette implémentation. |
|
NodeType | En cas de substitution dans une classe dérivée, obtient le type du nœud actuel. |
|
Prefix | En cas de substitution dans une classe dérivée, obtient le préfixe de l'espace de noms associé au nœud actuel. |
|
QuoteChar | En cas de substitution dans une classe dérivée, obtient le caractère guillemet permettant de délimiter la valeur d'un nœud d'attribut. |
|
ReadState | En cas de substitution dans une classe dérivée, obtient l'état du lecteur. |
|
SchemaInfo | Obtient les informations de schéma qui ont été assignées au nœud actuel à la suite de la validation du schéma. |
|
Settings | Obtient l'objet XmlReaderSettings permettant de créer cette instance de XmlReader. |
|
Value | En cas de substitution dans une classe dérivée, obtient la valeur texte du nœud actuel. |
|
ValueType | Obtient le type de CLR du nœud actuel. |
|
XmlLang | En cas de substitution dans une classe dérivée, obtient la portée xml:lang en cours. |
|
XmlSpace | En cas de substitution dans une classe dérivée, obtient la portée xml:space en cours. |
| Nom | Description | |
|---|---|---|
|
Close | En cas de substitution dans une classe dérivée, modifie ReadState en Closed. |
|
Create(Stream) | Crée une instance de XmlReader à l'aide du flux spécifié. |
|
Create(String) | Crée une instance de XmlReader avec l'URI spécifié. |
|
Create(TextReader) | Crée une instance de XmlReader avec le TextReader spécifié. |
|
Create(Stream, XmlReaderSettings) | Crée une instance de XmlReader avec le flux et l'objet XmlReaderSettings spécifiés. |
|
Create(String, XmlReaderSettings) | Crée une instance avec l'URI et les XmlReaderSettings spécifiés. |
|
Create(TextReader, XmlReaderSettings) | Crée une instance de XmlReader à l'aide des objets TextReader et XmlReaderSettings spécifiés. |
|
Create(XmlReader, XmlReaderSettings) | Crée une instance de XmlReader avec les objets XmlReader et XmlReaderSettings spécifiés. |
|
Create(Stream, XmlReaderSettings, String) | Crée une instance de XmlReader à l'aide du flux, de l'URI de base et de l'objet XmlReaderSettings spécifiés. |
|
Create(Stream, XmlReaderSettings, XmlParserContext) | Crée une instance de XmlReader à l'aide des objets XmlReaderSettings et XmlParserContext spécifiés. |
|
Create(String, XmlReaderSettings, XmlParserContext) | Crée une instance de XmlReader à l'aide de l'URI et des objets XmlReaderSettings et XmlParserContext spécifiés. |
|
Create(TextReader, XmlReaderSettings, String) | Crée une instance de XmlReader à l'aide des objets TextReader et de l'URI de base XmlReaderSettings spécifiés. |
|
Create(TextReader, XmlReaderSettings, XmlParserContext) | Crée une instance de XmlReader à l'aide des objets TextReader, XmlReaderSettings et XmlParserContext spécifiés. |
|
Dispose() | |
|
Dispose(Boolean) | Libère les ressources non managées utilisées par XmlReader et libère éventuellement les ressources managées. |
|
Equals(Object) | Détermine si l'Object spécifié est égal à l'Object en cours. (Hérité de Object.) |
|
Finalize | Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de netto***ge avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.) |
|
GetAttribute(Int32) | En cas de substitution dans une classe dérivée, obtient la valeur de l'attribut avec l'index spécifié. |
|
GetAttribute(String) | En cas de substitution dans une classe dérivée, obtient la valeur de l'attribut avec le Name spécifié. |
|
GetAttribute(String, String) | En cas de substitution dans une classe dérivée, obtient la valeur de l'attribut avec le LocalName et le NamespaceURI spécifiés. |
|
GetHashCode | Sert de fonction de hachage pour un type particulier. (Hérité de Object.) |
|
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) |
|
IsName | Obtient une valeur indiquant si l'argument string est un nom XML valide. |
|
IsNameToken | Obtient une valeur indiquant si l'argument string est un jeton de nom XML valide. |
|
IsStartElement() | Appelle MoveToContent et vérifie si le nœud de contenu actuel est une balise de début ou une balise d'élément vide. |
|
IsStartElement(String) | Appelle MoveToContent, vérifie si le nœud de contenu actuel est une balise de début ou une balise d'élément vide, puis vérifie également si la propriété Name de l'élément trouvé correspond à l'argument spécifié. |
|
IsStartElement(String, String) | Appelle MoveToContent, vérifie si le nœud de contenu actuel est une balise de début ou une balise d'élément vide, puis vérifie également si les propriétés LocalName et NamespaceURI de l'élément trouvé correspondent aux chaînes spécifiées. |
|
LookupNamespace | En cas de substitution dans une classe dérivée, résout un préfixe de l'espace de noms dans la portée de l'élément en cours. |
|
MemberwiseClone | Crée une copie superficielle de l'objet Object actif. (Hérité de Object.) |
|
MoveToAttribute(Int32) | En cas de substitution dans une classe dérivée, se déplace vers l'attribut avec l'index spécifié. |
|
MoveToAttribute(String) | En cas de substitution dans une classe dérivée, se déplace vers l'attribut avec le Name spécifié. |
|
MoveToAttribute(String, String) | En cas de substitution dans une classe dérivée, se déplace vers l'attribut avec le LocalName et le NamespaceURI spécifiés. |
|
MoveToContent | Vérifie si le nœud actuel est un nœud de contenu (texte non constitué d'espaces blancs, CDATA, Element, EndElement, EntityReference ou EndEntity). Si le nœud n'est pas un nœud de contenu, le lecteur avance jusqu'au nœud de contenu suivant ou jusqu'à la fin du fichier. Il ignore les nœuds possédant les types suivants : ProcessingInstruction, DocumentType, Comment, Whitespace ou SignificantWhitespace. |
|
MoveToElement | En cas de substitution dans une classe dérivée, se déplace vers l'élément contenant le nœud d'attribut actuel. |
|
MoveToFirstAttribute | En cas de substitution dans une classe dérivée, se déplace vers le premier attribut. |
|
MoveToNextAttribute | En cas de substitution dans une classe dérivée, se déplace vers l'attribut suivant. |
|
Read | En cas de substitution dans une classe dérivée, lit le nœud suivant à partir du flux. |
|
ReadAttributeValue | En cas de substitution dans une classe dérivée, analyse la valeur d'attribut dans un ou plusieurs nœuds Text, EntityReference ou EndEntity. |
|
ReadContentAs | Lit le contenu en tant qu'objet du type spécifié. |
|
ReadContentAsBase64 | Lit le contenu et retourne les octets binaires décodés au format Base64. |
|
ReadContentAsBinHex | Lit le contenu et retourne les octets binaires décodés au format BinHex. |
|
ReadContentAsBoolean | Lit le contenu de texte à la position actuelle comme un Boolean. |
|
ReadContentAsDateTime | Lit le contenu de texte à la position actuelle comme un objet DateTime. |
|
ReadContentAsDecimal | Lit le contenu de texte à la position actuelle comme un objet Decimal. |
|
ReadContentAsDouble | Lit le contenu de texte à la position actuelle en tant que nombre à virgule flottante double précision. |
|
ReadContentAsFloat | Lit le contenu de texte à la position actuelle en tant que nombre à virgule flottante simple précision. |
|
ReadContentAsInt | Lit le contenu de texte à la position actuelle comme un entier signé de 32 bits. |
|
ReadContentAsLong | Lit le contenu de texte à la position actuelle comme un entier signé de 64 bits. |
|
ReadContentAsObject | Lit le contenu de texte à la position actuelle comme un Object. |
|
ReadContentAsString | Lit le contenu de texte à la position actuelle comme un objet String. |
|
ReadElementContentAs(Type, IXmlNamespaceResolver) | Lit le contenu de l'élément en tant que type demandé. |
|
ReadElementContentAs(Type, IXmlNamespaceResolver, String, String) | Vérifie que le nom local spécifié et l'URI de l'espace de noms correspondent à ceux de l'élément actuel, puis lit le contenu d'élément en tant que type demandé. |
|
ReadElementContentAsBase64 | Lit l'élément et décode le contenu au format Base64. |
|
ReadElementContentAsBinHex | Lit l'élément et décode le contenu au format BinHex. |
|
ReadElementContentAsBoolean() | Lit l'élément actuel et retourne le contenu en tant qu'objet Boolean. |
|
ReadElementContentAsBoolean(String, String) | Vérifie que le nom local spécifié et l'URI de l'espace de noms correspondent à ceux de l'élément actuel, puis lit l'élément actuel et retourne le contenu en tant qu'objet Boolean. |
|
ReadElementContentAsDateTime() | Lit l'élément actuel et retourne le contenu en tant qu'objet DateTime. |
|
ReadElementContentAsDateTime(String, String) | Vérifie que le nom local spécifié et l'URI de l'espace de noms correspondent à ceux de l'élément actuel, puis lit l'élément actuel et retourne le contenu en tant qu'objet DateTime. |
|
ReadElementContentAsDecimal() | Lit l'élément actuel et retourne le contenu en tant qu'objet Decimal. |
|
ReadElementContentAsDecimal(String, String) | Vérifie que le nom local spécifié et l'URI de l'espace de noms correspondent à ceux de l'élément actuel, puis lit l'élément actuel et retourne le contenu en tant qu'objet Decimal. |
|
ReadElementContentAsDouble() | Lit l'élément actuel et retourne le contenu en tant que nombre à virgule flottante double précision. |
|
ReadElementContentAsDouble(String, String) | Vérifie que le nom local et l'URI de l'espace de noms spécifiés correspondent à ceux de l'élément actuel, puis lit l'élément actuel et retourne le contenu sous la forme d'un nombre à virgule flottante double précision. |
|
ReadElementContentAsFloat() | Lit l'élément actuel et retourne le contenu en tant que nombre à virgule flottante simple précision. |
|
ReadElementContentAsFloat(String, String) | Vérifie que le nom local et l'URI de l'espace de noms spécifiés correspondent à ceux de l'élément actuel, puis lit l'élément actuel et retourne le contenu sous la forme d'un nombre à virgule flottante simple précision. |
|
ReadElementContentAsInt() | Lit l'élément actuel et retourne le contenu comme un entier signé de 32 bits. |
|
ReadElementContentAsInt(String, String) | Vérifie que le nom local spécifié et l'URI de l'espace de noms correspondent à ceux de l'élément actuel, puis lit l'élément actuel et retourne le contenu en tant qu'entier signé de 32 bits. |
|
ReadElementContentAsLong() | Lit l'élément actuel et retourne le contenu comme un entier signé de 64 bits. |
|
ReadElementContentAsLong(String, String) | Vérifie que le nom local spécifié et l'URI de l'espace de noms correspondent à ceux de l'élément actuel, puis lit l'élément actuel et retourne le contenu en tant qu'entier signé de 64 bits. |
|
ReadElementContentAsObject() | Lit l'élément actuel et retourne le contenu en tant que Object. |
|
ReadElementContentAsObject(String, String) | Vérifie que le nom local et l'URI de l'espace de noms spécifiés correspondent à ceux de l'élément actuel, puis lit l'élément actuel et retourne le contenu en tant qu'objet Object. |
|
ReadElementContentAsString() | Lit l'élément actuel et retourne le contenu en tant qu'objet String. |
|
ReadElementContentAsString(String, String) | Vérifie que le nom local spécifié et l'URI de l'espace de noms correspondent à ceux de l'élément actuel, puis lit l'élément actuel et retourne le contenu en tant qu'objet String. |
|
ReadElementString() | Lit un élément de texte brut. |
|
ReadElementString(String) | Vérifie que la propriété Name de l'élément trouvé correspond à la chaîne spécifiée avant de lire un élément de texte brut. |
|
ReadElementString(String, String) | Vérifie que les propriétés LocalName et NamespaceURI de l'élément trouvé correspondent aux chaînes spécifiées avant de lire un élément de texte brut. |
|
ReadEndElement | Vérifie que le nœud de contenu actuel est une balise de fin et avance le lecteur jusqu'au nœud suivant. |
|
ReadInnerXml | En cas de substitution dans une classe dérivée, lit tout le contenu, y compris le balisage, sous forme de chaîne. |
|
ReadOuterXml | En cas de substitution dans une classe dérivée, lit le contenu, y compris le balisage, représentant ce nœud et tous ses enfants. |
|
ReadStartElement() | Vérifie que le nœud actuel est un élément et avance le lecteur jusqu'au nœud suivant. |
|
ReadStartElement(String) | Vérifie que le nœud de contenu actuel est un élément avec le Name spécifié, puis avance le lecteur jusqu'au nœud suivant. |
|
ReadStartElement(String, String) | Vérifie que le nœud de contenu actuel est un élément avec le LocalName et le NamespaceURI spécifiés, puis avance le lecteur jusqu'au nœud suivant. |
|
ReadString | En cas de substitution dans une classe dérivée, lit le contenu d'un nœud d'élément ou de texte sous forme de chaîne. |
|
ReadSubtree | Retourne une nouvelle instance de XmlReader qui permet de lire le nœud actuel, ainsi que tous ses descendants. |
|
ReadToDescendant(String) | Avance le XmlReader vers l'élément descendant suivant portant le nom qualifié spécifié. |
|
ReadToDescendant(String, String) | Avance XmlReader vers le nœud descendant suivant doté du nom local et de l'URI de l'espace de noms spécifiés. |
|
ReadToFollowing(String) | Lit jusqu'à trouver un élément avec le nom qualifié spécifié. |
|
ReadToFollowing(String, String) | Lit jusqu'à trouver un élément avec le nom local et l'URI de l'espace de noms spécifiés. |
|
ReadToNextSibling(String) | Avance le XmlReader vers l'élément frère suivant portant le nom qualifié spécifié. |
|
ReadToNextSibling(String, String) | Avance XmlReader vers le nœud frère suivant doté du nom local et de l'URI de l'espace de noms spécifiés. |
|
ReadValueChunk | Lit des flux de texte volumineux incorporés dans un document XML. |
|
ResolveEntity | En cas de substitution dans une classe dérivée, résout la référence d'entité des nœuds EntityReference. |
|
Skip | Ignore les enfants du nœud actuel. |
|
ToString | Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.) |
| Nom | Description | |
|---|---|---|
|
IDisposable.Dispose | Pour obtenir une description de ce membre, consultez IDisposable.Dispose. |
XmlReader fournit un accès en avant uniquement et en lecture seule à un flux de données XML. La classe XmlReader respecte les recommandations du W3C intitulées Extensible Markup Language (XML) 1.0 et Namespaces in XML.
Le nœud actuel fait référence au nœud sur lequel le lecteur est placé. Le lecteur avance à l'aide des méthodes de lecture tandis que les propriétés reflètent la valeur du nœud actuel.
Important
|
|---|
|
Bien que Microsoft .NET Framework inclue des implémentations concrètes de la classe XmlReader, telles que les classes XmlTextReader, XmlNodeReader et XmlValidatingReader, dans la version 2.0, la méthode recommandée consiste à créer des instances de XmlReader à l'aide de la méthode Create. Pour plus d'informations, consultez Création de lecteurs XML. |
XmlReader lève XmlException sur les erreurs d'analyse XML. Lorsqu'une exception est levée, l'état du lecteur est imprévisible. Par exemple, le type de nœud rapporté peut différer du type réel du nœud actuel. Utilisez la propriété ReadState pour vérifier si l'état du lecteur est Erreur.
Pour obtenir des informations supplémentaires sur la classe XmlReader, consultez Lecture de XML avec XmlReader.
Considérations à propos de la sécurité
Les éléments suivants sont à prendre en compte lors de l'utilisation de la classe XmlReader.
-
Les exceptions levées par XmlReader peuvent divulguer des informations relatives au chemin d'accès dont vous ne souhaitez pas qu'elles soient propagées dans l'application. Vos applications doivent intercepter les exceptions et les traiter correctement.
-
N'activez pas le traitement DTD si vous rencontrez des problèmes de déni de service ou si vous traitez avec des sources non fiables. Le traitement DTD est désactivé par défaut pour les objets XmlReader créés par la méthode Create.
Si le traitement DTD est activé, vous pouvez utiliser XmlSecureResolver pour restreindre les ressources auxquelles XmlReader peut accéder. Vous pouvez également concevoir votre application afin que le traitement XML soit limité en termes de mémoire et de temps. Par exemple, configurez des limites de délai d'expiration dans votre application ASP.NET
-
Les données XML peuvent inclure des références à des ressources externes telles qu'un fichier de schéma. Les ressources externes sont résolues par défaut en utilisant un objet XmlUrlResolver sans informations d'identification d'utilisateur. Vous pouvez renforcer la sécurité en procédant comme suit :
-
Limitez les ressources auxquelles XmlReader peut accéder en définissant la propriété XmlReaderSettings.XmlResolver sur un objet XmlSecureResolver.
-
N'autorisez pas XmlReader à ouvrir n'importe quelle ressource externe en affectant à la propriété XmlReaderSettings.XmlResolver la valeur null.
-
-
Les données XML peuvent contenir un grand nombre d'attributs, de déclarations d'espace de noms, d'éléments imbriqués et autres, qui requièrent une grande durée de traitement. Pour limiter la taille de l'entrée qui est envoyée au XmlReader, créez une implémentation IStream personnalisée et affectez-lui XmlReader.
-
La méthode ReadValueChunk peut être utilisée pour gérer de grands flux de données. Cette méthode lit un petit nombre de caractères à la fois au lieu d'allouer une chaîne unique pour la valeur entière.
-
Lors de la lecture d'un document XML avec un grand nombre des noms locaux uniques, d'espaces de noms ou de préfixes, un problème peut survenir. Si vous utilisez une classe qui dérive de XmlReader et que vous appelez la propriété LocalName, Prefix ou NamespaceURI pour chaque élément, la chaîne retournée est ajoutée à un NameTable. La collection détenue par NameTable ne diminue jamais en taille et crée une « fuite de mémoire » virtuelle des handles de chaîne. Il est possible de limiter les risques en dérivant de la classe NameTable et en appliquant un quota de taille maximal. (Il est impossible d'empêcher l'utilisation d'un NameTable ou de faire basculer le NameTable lorsqu'il est complet.) Pour limiter les risques, évitez également d'utiliser les propriétés mentionnées et utilisez plutôt la méthode MoveToAttribute avec la méthode IsStartElement dans la mesure du possible ; ces méthodes ne retournant pas de chaînes, la collection NameTable n'est pas saturée.
.NET Framework
Pris en charge dans : 4, 3.5, 3.0, 2.0, 1.1, 1.0.NET Framework Client Profile
Pris en charge dans : 4, 3.5 SP1Pris en charge dans :
Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2
Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Important