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


Свойство оси атрибута XML

Обновлен: Ноябрь 2007

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

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

Компоненты

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

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

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

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

    Часть

    Описание

    prefix

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

    name

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

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

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

Строка, содержащая значение атрибута.

Заметки

Можно использовать свойство оси 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 создается декларативно и атрибут owner создается динамически.

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

См. также

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

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

Ссылки

XElement

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

Свойства оси XML

XML-литералы

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