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


Свойство оси атрибута 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