Propriété d'axe d'attribut XML (Visual Basic)
Fournit l'accès à la valeur d'un attribut pour un objet XElement ou au premier élément d'une collection d'objets XElement.
object.@attribute
-or-
object.@<attribute>
Éléments
object
Obligatoire. Objet XElement ou collection d'objets XElement..@
Obligatoire. Dénote le début d'une propriété d'axe d'attribut.<
Facultatif. Dénote le début du nom de l'attribut lorsque attribute n'est pas un identificateur valide dans Visual Basic.attribute
Obligatoire. Nom de l'attribut auquel accéder, du formulaire [prefix:]name.Élément
Description
prefix
Facultatif. Préfixe d'espace de noms XML de l'attribut. Doit être un espace de noms XML global, défini avec une instruction Imports.
name
Obligatoire. Nom d'attribut local. Consultez Nom des attributs et des éléments XML déclarés (Visual Basic).
>
Facultatif. Dénote la fin du nom de l'attribut lorsque attribute n'est pas un identificateur valide dans Visual Basic.
Valeur de retour
Chaîne contenant la valeur de attribute. Si le nom de l'attribut n'existe pas, Nothing est retourné.
Notes
Vous pouvez utiliser une propriété d'axe d'attribut XML pour accéder à la valeur d'un attribut par nom à partir d'un objet XElement ou à partir du premier élément d'une collection d'objets XElement. Vous pouvez récupérer une valeur d'attribut par nom ou ajouter un nouvel attribut à un élément en spécifiant un nouveau nom précédé de l'identificateur @.
Lorsque vous faites référence à la valeur d'un attribut XML à l'aide de l'identificateur @, la valeur de l'attribut est retournée sous la forme d'une chaîne et vous n'avez pas besoin de spécifier la propriété Value explicitement.
Les règles d'affectation de noms pour les attributs XML diffèrent de celles pour les identificateurs Visual Basic. Pour accéder à un attribut XML avec un nom qui ne correspond pas à un identificateur Visual Basic valide, placez le nom entre signes "inférieur à" et "supérieur à" (< et >).
Espaces de noms XML
Le nom dans une propriété de l'axe de l'attribut peut utiliser uniquement des préfixes d'espace de noms XML déclarés globalement à l'aide de l'instruction Imports. Il ne peut pas utiliser de préfixes d'espaces de noms XML déclarés localement dans des littéraux d'éléments XML. Pour plus d'informations, consultez Imports, instruction (espace de noms XML).
Exemple
L'exemple suivant illustre comment obtenir les valeurs des attributs XML nommés type à partir d'une collection d'éléments XML nommés phone.
' Topic: XML Attribute Axis Property
Dim phones As XElement =
<phones>
<phone type="home">206-555-0144</phone>
<phone type="work">425-555-0145</phone>
</phones>
Dim phoneTypes As XElement =
<phoneTypes>
<%= From phone In phones.<phone>
Select <type><%= phone.@type %></type>
%>
</phoneTypes>
Console.WriteLine(phoneTypes)
Ce code affiche le texte suivant :
<phoneTypes>
<type>home</type>
<type>work</type>
</phoneTypes>
L'exemple suivant indique comment créer des attributs pour un élément XML de façon déclarative, dans le cadre du XML, et dynamiquement en ajoutant un attribut à une instance d'un objet XElement. L'attribut type est créé de façon déclarative tandis que l'attribut owne est créé dynamiquement.
Dim phone2 As XElement = <phone type="home">206-555-0144</phone>
phone2.@owner = "Harris, Phyllis"
Console.WriteLine(phone2)
Ce code affiche le texte suivant :
<phone type="home" owner="Harris, Phyllis">206-555-0144</phone>
L'exemple suivant utilise la syntaxe de crochets pointus pour obtenir la valeur de l'attribut XML nommé number-type, qui n'est pas un identificateur valide dans Visual Basic.
Dim phone As XElement =
<phone number-type=" work">425-555-0145</phone>
Console.WriteLine("Phone type: " & phone.@<number-type>)
Ce code affiche le texte suivant :
Phone type: work
L'exemple suivant déclare ns en tant que préfixe d'espace de noms XML. Il utilise alors le préfixe de l'espace de noms pour créer un littéral XML et accéder au premier nœud enfant avec le nom qualifié "ns:name".
Imports <xmlns:ns = "http://SomeNamespace">
Class TestClass3
Shared Sub TestPrefix()
Dim phone =
<ns:phone ns:type="home">206-555-0144</ns:phone>
Console.WriteLine("Phone type: " & phone.@ns:type)
End Sub
End Class
Ce code affiche le texte suivant :
Phone type: home
Voir aussi
Référence
Concepts
Nom des attributs et des éléments XML déclarés (Visual Basic)