Поделиться через


Свойство оси атрибута XML (Visual Basic)

Предоставляет доступ к значению атрибута для объекта XElement или к первому элементу в коллекции объектов XElement.

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

Части

  • object
    Обязательный. Объект XElement или коллекция объектов XElement.

  • .@
    Обязательный. Обозначает начало свойства оси атрибута.

  • <
    Необязательный. Обозначает начало имени атрибута, если attribute не является допустимым идентификатором в Visual Basic.

  • attribute
    Обязательный. Имя атрибута, к которому осуществляется доступ, в форме [prefix:]name.

    Компонент

    Описание

    prefix

    Необязательный. Префикс пространства имен XML для атрибута. Должно быть глобальным пространством имен XML, определенным при помощи оператора Imports.

    name

    Обязательный. Имя локального атрибута. См. раздел Имена объявляемых элементов и атрибутов XML (Visual Basic).

  • >
    Необязательный. Обозначает конец имени атрибута, если attribute не является допустимым идентификатором в Visual Basic.

Возвращаемое значение

Строка, содержащая значение attribute. Если атрибута с таким именем не существует, возвращается значение Nothing.

Заметки

Можно использовать свойство оси XML-атрибута для доступа к значению атрибута по имени из объекта XElement или из первого элемента в коллекции объектов XElement. Можно извлечь значение атрибута по имени или добавить новый атрибут в элемент, указав новое имя, начинающееся с идентификатора @.

При обращении к XML-атрибуту с помощью идентификатора @, значение атрибута возвращается в виде строки, и не нужно явно задавать свойство Value.

Правила именования для XML-атрибутов отличаются от правила именования для идентификаторов Visual Basic. Для доступа к XML-атрибуту с именем, которое не является допустимым идентификатором в Visual Basic, заключите имя в угловые скобки (< и >).

Пространства имен XML

Имя в свойстве атрибута оси может использовать только префиксы пространств имен XML, объявленные глобально с помощью инструкции Imports. Оно не может использовать префиксы пространства имен XML, объявленные локально с помощью литералов XML-элемента. Дополнительные сведения см. в разделе Оператор Imports (пространство имен XML).

Пример

В следующем примере показано получение значений из XML-атрибутов с именем type из коллекции XML-элементов, которая называется 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)

В этом коде отображается следующий текст:

<phoneTypes>

<type>home</type>

<type>work</type>

</phoneTypes>

Пример, как создать атрибуты для XML-элемента декларативно, как часть XML, и динамически, путем добавления атрибута экземпляру объекта XElement. Атрибут type создается декларативно и атрибут owne создается динамически.

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

Console.WriteLine(phone2)

В этом коде отображается следующий текст:

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

В следующем примере используется синтаксис угловых скобок, чтобы получить значение атрибута XML с именем number-type, который не является допустимым идентификатором в Visual Basic. 

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

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

В этом коде отображается следующий текст:

Phone type: work

В следующем примере ns объявляется как префикс пространства имен XML. Затем используется префикс пространства имен для создания литерала XML и доступа к первому дочернему узлу, имеющему полное имя "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

В этом коде отображается следующий текст:

Phone type: home

См. также

Ссылки

XElement

Основные понятия

Имена объявляемых элементов и атрибутов XML (Visual Basic)

Другие ресурсы

Свойства оси XML (Visual Basic)

XML-литералы (Visual Basic)

Создание XML в Visual Basic