Proprietà axis dell'attributo XML (Visual Basic)
Fornisce l'accesso al valore di un attributo per un oggetto XElement o al primo elemento di una raccolta di oggetti XElement.
Sintassi
object.@attribute
' -or-
object.@<attribute>
Parti
object
Obbligatorio. Oggetto XElement o insieme di oggetti XElement.
.@ 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
.
In parte | Descrizione |
---|---|
prefix |
Facoltativo. Prefisso dello spazio dei nomi XML per l'attributo. Deve essere uno spazio dei nomi XML globale definito usando 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 oggetto XElement o dal primo elemento di una raccolta di oggetti XElement. È 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 proprietà Value.
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 degli spazi dei nomi XML dichiarati localmente all'interno di valori letterali dell'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 oggetto XElement. 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 dichiarato ns
come un prefisso dello spazio dei nomi XML. Il prefisso dello spazio dei nomi viene quindi usato 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