Condividi tramite


Proprietà Asse attributi XML (Visual Basic)

Fornisce l'accesso al valore di un attributo per un XElement oggetto o al primo elemento di una raccolta di XElement oggetti.

Sintassi

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

Parti

object Obbligatorio. Oggetto XElement o raccolta di XElement oggetti.

.@ Obbligatorio. Indica l'inizio di una proprietà dell'asse degli attributi.

< facoltativo. Indica l'inizio del nome dell'attributo quando attribute non è un identificatore valido in Visual Basic.

attribute Obbligatorio. Nome dell'attributo a cui accedere, del formato [prefix:]name.

Parte Descrizione
prefix Opzionale. Prefisso dello spazio dei nomi XML per l'attributo . Deve essere uno spazio dei nomi XML globale definito con un'istruzione Imports .
name Obbligatorio. Nome attributo locale. Vedere Nomi di elementi e attributi XML dichiarati.

> facoltativo. Indica la fine del nome dell'attributo quando attribute non è un identificatore valido in Visual Basic.

Valore restituito

Stringa contenente il valore di attribute. Se il nome dell'attributo non esiste, Nothing viene restituito .

Osservazioni:

È possibile utilizzare una proprietà dell'asse degli attributi XML per accedere al valore di un attributo in base al nome da un XElement oggetto o dal primo elemento di una raccolta di XElement oggetti. È possibile recuperare un valore dell'attributo in base al nome o aggiungere un nuovo attributo a un elemento specificando un nuovo nome preceduto dall'identificatore @ .

Quando si fa riferimento a un attributo XML usando l'identificatore @, il valore dell'attributo viene restituito come stringa e non è necessario specificare in modo esplicito la Value proprietà.

Le regole di denominazione per gli attributi XML differiscono dalle regole di denominazione per gli identificatori di Visual Basic. Per accedere a un attributo XML con un nome che non è un identificatore di Visual Basic valido, racchiudere il nome tra parentesi angolari (< e >).

Spazi dei nomi XML

Il nome in una proprietà dell'asse degli attributi può usare solo i prefissi dello spazio dei nomi XML dichiarati a livello globale tramite l'istruzione Imports . Non può usare prefissi dello spazio dei nomi XML dichiarati localmente all'interno di valori letterali elemento XML. Per altre informazioni, vedere Istruzione Imports (spazio dei nomi XML).

Esempio 1

Nell'esempio seguente viene illustrato come ottenere i valori degli attributi XML denominati type da una raccolta di elementi XML denominati 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)

Questo codice visualizza il testo seguente:

<phoneTypes>

<type>home</type>

<type>work</type>

</phoneTypes>

Esempio 2

Nell'esempio seguente viene illustrato come creare attributi per un elemento XML in modo dichiarativo, come parte del codice XML e in modo dinamico aggiungendo un attributo a un'istanza di un XElement oggetto . L'attributo type viene creato in modo dichiarativo e l'attributo owner viene creato in modo dinamico.

Dim phone2 As XElement = <phone type="home">206-555-0144</phone>
phone2.@owner = "Harris, Phyllis"

Console.WriteLine(phone2)

Questo codice visualizza il testo seguente:

<phone type="home" owner="Harris, Phyllis">206-555-0144</phone>

Esempio 3

Nell'esempio seguente viene utilizzata la sintassi delle parentesi angolari per ottenere il valore dell'attributo XML denominato number-type, che non è un identificatore valido in Visual Basic.

Dim phone As XElement = 
     <phone number-type=" work">425-555-0145</phone>

 Console.WriteLine("Phone type: " & phone.@<number-type>)

Questo codice visualizza il testo seguente:

Phone type: work

Esempio 4

Nell'esempio seguente viene ns dichiarato come prefisso dello spazio dei nomi XML. Usa quindi il prefisso dello spazio dei nomi per creare un valore letterale XML e accedere al primo nodo figlio con il nome completo "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

Questo codice visualizza il testo seguente:

Phone type: home

Vedere anche