Partager via


Lecture d'attributs

La classe XmlReader fournit diverses méthodes et propriétés pour lire des attributs. Les attributs sont le plus couramment associés à des éléments. Cependant, ils sont aussi autorisés dans les nœuds de déclaration XML et de type de document.

Lecture d'attributs dans des éléments

Lorsqu'elles sont positionnées sur un nœud d'élément, les méthodes MoveToAttribute permettent de parcourir la liste des attributs de l'élément. Une fois que la méthode MoveToAttribute a été appelée, les propriétés du nœud, telles que Name, NamespaceURI, Prefix, etc. reflètent les propriétés de cet attribut, pas l'élément contenant auquel il appartient_.

Le tableau suivant décrit les méthodes et propriétés conçues spécifiquement pour traiter les attributs.

Nom de membre

Description

AttributeCount

Obtient le nombre d'attributs de l'élément.

GetAttribute

Obtient la valeur de l'attribut.

HasAttributes

Obtient une valeur indiquant si le nœud actuel possède des attributs.

IsDefault

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.

Item

Obtient la valeur de l'attribut spécifié.

MoveToAttribute

Se déplace vers l'attribut spécifié.

MoveToElement

Effectue un déplacement vers l'élément qui contient le nœud d'attribut actuel.

MoveToFirstAttribute

Se déplace vers le premier attribut.

MoveToNextAttribute

Se déplace vers l'attribut suivant.

ReadAttributeValue

Décompose la valeur de l'attribut en un ou plusieurs nœuds Text, EntityReference ou EndEntity.

Toutes les méthodes et propriétés XmlReader générales peuvent aussi être utilisées pour traiter des attributs. Par exemple, une fois que l'objet XmlReader a été positionné sur un attribut, les propriétés Name et Value reflètent les valeurs de cet attribut. Vous pouvez aussi utiliser les méthodes Read de contenu pour obtenir la valeur de l'attribut.

Lecture d'attributs dans d'autres types de nœuds

La lecture d'attributs s'effectue le plus souvent dans des nœuds d'élément. Des attributs peuvent cependant aussi se trouver dans des déclarations XML et des déclarations de type de document.

RemarqueRemarque

Lorsque l'objet XmlReader est positionné sur un n_œud d'instruction de traitement, la propriété Value retourne tout le contenu textuel.Les éléments contenus dans le nœud d'instruction de traitement ne sont pas traités comme des attributs.Ils ne peuvent pas être lus avec les méthodes GetAttribute ou MoveToAttribute.

Nœud de déclaration XML

Lorsque l'objet est positionné sur un nœud de déclaration XML, la version, la déclaration autonome et les informations d'encodage sont retournées comme une chaîne unique par la propriété Value. Sur certains lecteurs, la version, la déclaration autonome et les informations d'encodage peuvent aussi être exposées comme des attributs.

RemarqueRemarque

Les objets XmlReader créés par la méthode Create, les classes XmlTextReader et XmlValidatingReader, exposent la version, la déclaration autonome et les informations d'encodage comme des attributs.

Nœud de type de document

Lorsque l'objet XmlReader est positionné sur un nœud de type de document, la méthode GetAttribute et la propriété Item peuvent être utilisées pour retourner les valeurs des littéraux SYSTEM et PUBLIC. Par exemple, un appel reader.GetAttribute("PUBLIC") retourne la valeur PUBLIC.

Exemples

L'exemple suivant lit tous les attributs d'un élément à l'aide de la propriété AttributeCount.

' Display all attributes.
If reader.HasAttributes Then
  Console.WriteLine("Attributes of <" + reader.Name + ">")
  Dim i As Integer
  For i = 0 To (reader.AttributeCount - 1)
    Console.WriteLine("  {0}", reader(i))
  Next i
  ' Move the reader back to the element node.
  reader.MoveToElement() 
End If
// Display all attributes.
if (reader.HasAttributes) {
  Console.WriteLine("Attributes of <" + reader.Name + ">");
  for (int i = 0; i < reader.AttributeCount; i++) {
    Console.WriteLine("  {0}", reader[i]);
  }
  // Move the reader back to the element node.
  reader.MoveToElement(); 
}

L'exemple suivant lit tous les attributs d'un élément à l'aide de la méthode MoveToNextAttribute dans une boucle While.

If reader.HasAttributes Then
  Console.WriteLine("Attributes of <" + reader.Name + ">")
  While reader.MoveToNextAttribute()
    Console.WriteLine(" {0}={1}", reader.Name, reader.Value)
  End While
  ' Move the reader back to the element node.
  reader.MoveToElement()
End If
if (reader.HasAttributes) {
  Console.WriteLine("Attributes of <" + reader.Name + ">");
  while (reader.MoveToNextAttribute()) {
    Console.WriteLine(" {0}={1}", reader.Name, reader.Value);
  }
  // Move the reader back to the element node.
  reader.MoveToElement();
}

L'exemple suivant obtient la valeur d'un attribut par son nom.

reader.ReadToFollowing("book")
Dim isbn As String = reader.GetAttribute("ISBN")
Console.WriteLine("The ISBN value: " + isbn)
reader.ReadToFollowing("book");
string isbn = reader.GetAttribute("ISBN");
Console.WriteLine("The ISBN value: " + isbn);

Voir aussi

Concepts

Lecture de XML avec XmlReader