Свойство оси атрибута 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
См. также
Ссылки
Основные понятия
Имена объявляемых элементов и атрибутов XML (Visual Basic)