Partager via


XML Attribute Axis, propriété (Visual Basic)

Fournit l’accès à la valeur d’un attribut pour un XElement objet ou au premier élément d’une collection d’objets XElement .

Syntaxe

object.@attribute
' -or-
object.@<attribute>

Pièces

object Obligatoire. Objet XElement ou collection d’objets XElement .

.@ Obligatoire. Indique le début d’une propriété d’axe d’attribut.

< Facultatif. Indique le début du nom de l’attribut lorsqu’il attribute n’est pas un identificateur valide en Visual Basic.

attribute Obligatoire. Nom de l’attribut à accéder, du formulaire [prefix :]name.

Composant Descriptif
prefix Optionnel. Préfixe d’espace de noms XML pour l’attribut. Doit être un espace de noms XML global défini avec une Imports instruction.
name Obligatoire. Nom de l’attribut local. Consultez les noms des éléments et attributs XML déclarés.

> Facultatif. Indique la fin du nom de l’attribut lorsqu’il attribute n’est pas un identificateur valide en Visual Basic.

Valeur de retour

Chaîne qui contient la valeur de attribute. Si le nom de l’attribut n’existe pas, Nothing est retourné.

Remarques

Vous pouvez utiliser une propriété d’axe d’attribut XML pour accéder à la valeur d’un attribut par nom à partir d’un XElement objet 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 à un attribut XML à l’aide de l’identificateur @, la valeur de l’attribut est retournée sous forme de chaîne et vous n’avez pas besoin de spécifier explicitement la Value propriété.

Les règles d’affectation de noms pour les attributs XML diffèrent des règles d’affectation de noms pour les identificateurs Visual Basic. Pour accéder à un attribut XML qui a un nom qui n’est pas un identificateur Visual Basic valide, placez le nom entre crochets< (et >).

Espaces de noms XML

Le nom d’une propriété d’axe d’attribut peut utiliser uniquement les préfixes d’espace de noms XML déclarés globalement à l’aide de l’instruction Imports . Il ne peut pas utiliser les préfixes d’espace de noms XML déclarés localement dans les littéraux d’élément XML. Pour plus d’informations, consultez Imports Statement (XML Namespace).

Exemple 1

L’exemple suivant montre 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>

Exemple 2

L’exemple suivant montre comment créer des attributs pour un élément XML de manière déclarative, dans le cadre du code XML et dynamiquement en ajoutant un attribut à une instance d’un XElement objet. L’attribut type est créé de manière déclarative et l’attribut owner 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>

Exemple 3

L’exemple suivant utilise la syntaxe entre crochets 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

Exemple 4

L’exemple suivant déclare ns comme préfixe d’espace de noms XML. Il utilise ensuite 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