Udostępnij za pośrednictwem


Właściwości osi atrybutu XML (Visual Basic)

Zapewnia dostęp do wartości atrybutu dla XElement obiektu lub pierwszego elementu w kolekcji XElement obiektów.

Składnia

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

generatora

object Wymagane. XElement Obiekt lub kolekcja XElement obiektów.

.@ Wymagane. Określa początek właściwości osi atrybutu.

< Opcjonalne. Określa początek nazwy atrybutu, gdy attribute nie jest prawidłowym identyfikatorem w Visual Basic.

attribute Wymagane. Nazwa atrybutu dostępu do formularza [prefix:]name.

Element opis
prefix Opcjonalny. Prefiks przestrzeni nazw XML dla atrybutu. Musi być globalną przestrzenią nazw XML zdefiniowaną za pomocą instrukcji Imports .
name Wymagany. Nazwa atrybutu lokalnego. Zobacz Nazwy zadeklarowanych elementów XML i atrybutów.

> Opcjonalne. Określa koniec nazwy atrybutu, gdy attribute nie jest prawidłowym identyfikatorem w Visual Basic.

Wartość zwracana

Ciąg zawierający wartość attribute. Jeśli nazwa atrybutu nie istnieje, Nothing zostanie zwrócona.

Uwagi

Za pomocą właściwości osi atrybutu XML można uzyskać dostęp do wartości atrybutu według nazwy z XElement obiektu lub z pierwszego elementu w kolekcji XElement obiektów. Wartość atrybutu można pobrać według nazwy lub dodać nowy atrybut do elementu, określając nową nazwę poprzedzoną identyfikatorem @.

W przypadku odwoływania się do atrybutu XML przy użyciu identyfikatora @ wartość atrybutu jest zwracana jako ciąg i nie trzeba jawnie określać Value właściwości.

Reguły nazewnictwa atrybutów XML różnią się od reguł nazewnictwa identyfikatorów języka Visual Basic. Aby uzyskać dostęp do atrybutu XML, który ma nazwę, która nie jest prawidłowym identyfikatorem języka Visual Basic, należy ująć nazwę w nawiasy kątowe (< i >).

Przestrzenie nazw XML

Nazwa we właściwości osi atrybutu może używać tylko prefiksów przestrzeni nazw XML zadeklarowanych globalnie przy użyciu instrukcji Imports . Nie może używać prefiksów przestrzeni nazw XML zadeklarowanych lokalnie w literałach elementu XML. Aby uzyskać więcej informacji, zobacz Import Statement (XML Namespace).

Przykład 1

W poniższym przykładzie pokazano, jak pobrać wartości atrybutów XML o nazwie type z kolekcji elementów XML o nazwie 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)

Ten kod wyświetla następujący tekst:

<phoneTypes>

<type>home</type>

<type>work</type>

</phoneTypes>

Przykład 2

W poniższym przykładzie pokazano, jak utworzyć atrybuty dla elementu XML zarówno deklaratywnie, jak i w ramach kodu XML, i dynamicznie przez dodanie atrybutu XElement do wystąpienia obiektu. Atrybut type jest tworzony deklaratywnie, a owner atrybut jest tworzony dynamicznie.

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

Console.WriteLine(phone2)

Ten kod wyświetla następujący tekst:

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

Przykład 3

W poniższym przykładzie użyto składni nawiasu kątowego, aby uzyskać wartość atrybutu XML o nazwie number-type, który nie jest prawidłowym identyfikatorem w języku Visual Basic.

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

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

Ten kod wyświetla następujący tekst:

Phone type: work

Przykład 4

Poniższy przykład deklaruje ns jako prefiks przestrzeni nazw XML. Następnie używa prefiksu przestrzeni nazw, aby utworzyć literał XML i uzyskać dostęp do pierwszego węzła podrzędnego o kwalifikowanej nazwie "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

Ten kod wyświetla następujący tekst:

Phone type: home

Zobacz też