Propriété d'axe d'attribut XML

Mise à jour : novembre 2007

Fournit l'accès à la valeur d'un attribut pour un objet XElement ou le 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. See Nom des attributs et des éléments XML déclarés.

  • >
    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 l'attribut.

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 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 de dénomination des attributs XML diffèrent des règles de dénomination des identificateurs Visual Basic. Pour accéder à un attribut XML portant un nom qui n'est pas un identificateur Visual Basic valide, placez le nom entre crochets pointus (< 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

Concepts

Nom des attributs et des éléments XML déclarés

Référence

XElement

Autres ressources

Propriétés d'axe XML

Littéraux XML

Création de code XML dans Visual Basic