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 |
---|---|
Obtient le nombre d'attributs de l'élément. |
|
Obtient la valeur de l'attribut. |
|
Obtient une valeur indiquant si le nœud actuel possède des attributs. |
|
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. |
|
Obtient la valeur de l'attribut spécifié. |
|
Se déplace vers l'attribut spécifié. |
|
Effectue un déplacement vers l'élément qui contient le nœud d'attribut actuel. |
|
Se déplace vers le premier attribut. |
|
Se déplace vers l'attribut suivant. |
|
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.
Remarque |
---|
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.
Remarque |
---|
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);