Partager via


XmlReader.ReadContentAs(Type, IXmlNamespaceResolver) Méthode

Définition

Lit le contenu en tant qu’objet du type spécifié.

public:
 virtual System::Object ^ ReadContentAs(Type ^ returnType, System::Xml::IXmlNamespaceResolver ^ namespaceResolver);
public virtual object ReadContentAs(Type returnType, System.Xml.IXmlNamespaceResolver namespaceResolver);
public virtual object ReadContentAs(Type returnType, System.Xml.IXmlNamespaceResolver? namespaceResolver);
abstract member ReadContentAs : Type * System.Xml.IXmlNamespaceResolver -> obj
override this.ReadContentAs : Type * System.Xml.IXmlNamespaceResolver -> obj
Public Overridable Function ReadContentAs (returnType As Type, namespaceResolver As IXmlNamespaceResolver) As Object

Paramètres

returnType
Type

Type de la valeur à renvoyer.

Note Avec la version de .NET Framework 3.5, la valeur du returnType paramètre peut maintenant être le DateTimeOffset type.

namespaceResolver
IXmlNamespaceResolver

Objet IXmlNamespaceResolver utilisé pour résoudre les préfixes d’espace de noms liés à la conversion de type. Par exemple, cela peut être utilisé lors de la conversion d’un XmlQualifiedName objet en un xs:string.

Cette valeur peut être null.

Retours

Valeur de texte concaténée ou d’attribut convertie en type demandé.

Exceptions

Le contenu n’est pas au format correct pour le type cible.

La tentative de cast n’est pas valide.

La returnType valeur est null.

Le nœud actuel n’est pas un type de nœud pris en charge. Pour plus d’informations, consultez le tableau ci-dessous.

- ou -

Une XmlReader méthode a été appelée avant la fin d’une opération asynchrone précédente. Dans ce cas, InvalidOperationException est levée avec le message « Une opération asynchrone est déjà en cours ».

Lire Decimal.MaxValue.

Exemples

L’exemple suivant utilise la ReadContentAs méthode pour renvoyer le contenu de l’élément colors dans un tableau d’objets de chaîne.

using (XmlReader reader = XmlReader.Create("dataFile_2.xml")) {
      reader.ReadToDescendant("item");

      reader.MoveToAttribute("colors");
      string[] colors = (string[]) reader.ReadContentAs(typeof(string[]),null);
      foreach (string color in colors) {
         Console.WriteLine("Colors: {0}", color);
      }             		
}
Using reader As XmlReader = XmlReader.Create("dataFile_2.xml")

  reader.ReadToDescendant("item")
              
  reader.MoveToAttribute("colors")
  Dim colors As String() = CType(reader.ReadContentAs(GetType(String()), Nothing), String())
  Dim color As String
  For Each color In  colors
    Console.WriteLine("Colors: {0}", color)
  Next color
          
End Using

L’exemple utilise le dataFile_2.xml fichier comme entrée.

<root>
  <item sale-item='true' productID='123456' colors='blue green black'>
    <price>9.95</price>
  </item>
  <item sale-item='false' productID='124390'>
    <price>5.95</price>
  </item>
  <item sale-item='true' productID='53298'>
    <price>12.95</price>
  </item>
</root>

Remarques

Cette méthode lit le contenu du texte à la position actuelle du lecteur et le convertit en type de retour demandé. Le texte, l’espace blanc, 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.

Cette méthode est utilisée pour lire, convertir si nécessaire et retourner des éléments de valeur atomique à partir du contenu du nœud actuel. Si le type d’entrée est un mappage valide pour le type du nœud actuel, une instance du type cible contenant la valeur du nœud actuel est retournée. Consultez la section Remarques dans la XmlReader page de référence pour obtenir la liste des mappages par défaut.

Par exemple, si vous aviez le texte XML suivant :

<elem>123 <!-- comment --> <?pi my_text?> 456 <?pi another_pi?></elem>

Si les données sont typées et qu’un tableau de chaînes est fourni à l’appel ReadContentAs de méthode, les valeurs entières sont converties à partir de chaînes en fonction de la liste des mappages de types CLR valides.

Si les données ne sont pas typées et qu’un tableau de chaînes est fourni à l’appel ReadContentAs de méthode, le contenu est analysé en chaînes distinctes. Un tableau contenant deux chaînes est retourné avec les valeurs « 123 » et « 456 ». Les espaces ne sont pas conservés du contenu.

En général, lors de la lecture de données non typées, le contenu est analysé en fonction du type fourni. Par exemple, si un tableau d’entiers est fourni à l’appel ReadContentAs de méthode, la chaîne est analysée dans un tableau d’entiers {123,456}.

Dans l’exemple suivant, le texte XML n’est pas séparé par des espaces

<elem>123<!-- comment --><?pi my_text?>456789<?pi another_pi?></elem>

Si le contenu n’est pas typé et qu’un tableau de chaînes est fourni à l’appel ReadContentAs de méthode, un tableau contenant une chaîne concaténée est retourné avec la valeur « 123456789 ».

Le tableau suivant décrit comment cette méthode traite chaque type de nœud.

XmlNodeType Valeur renvoyée Comportement du lecteur
Text

CDATA

Whitespace

SignificantWhitespace

EntityReference

EndEntity
Contenu concaténé de texte, CDATA, espace blanc et nœuds d’espace blanc significatifs convertis en type demandé. Passe à l’élément de début ou à la balise d’élément de fin suivant. Les références d’entité sont automatiquement développées.
Attribute Identique à l’appel XmlConvert.ToXxx de la valeur d’attribut. Le lecteur reste à la position actuelle.
Comment

ProcessingInstruction
Ignore l’instruction de traitement (PI) ou le commentaire et lit le contenu de texte concaténé qui suit le pi ou le commentaire. Passe à l’élément de début ou à la balise d’élément de fin suivant. Les références d’entité sont automatiquement développées.
EndElement Chaîne vide. Le lecteur reste à la position actuelle.
Element

XmlDeclaration

None

Document

DocumentType

Notation

Entity

DocumentFragment
Une InvalidOperationException est levée. Non défini, bien que le lecteur reste généralement dans la position actuelle.

Pour plus d’informations, consultez la section Remarques de la XmlReader page de référence et la recommandation W3C XML Schema Part 2 : Datatypes .

Pour obtenir la version asynchrone de cette méthode, consultez ReadContentAsAsync.

S’applique à