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