Свойство оси атрибута XML (Visual Basic)
Предоставляет доступ к значению атрибута для XElement объекта или к первому элементу в коллекции XElement объектов.
Синтаксис
object.@attribute
' -or-
object.@<attribute>
Детали
object
Обязательный. XElement Объект или коллекция XElement объектов.
.@ Обязательный. Обозначает начало свойства оси атрибута.
< Необязательный. Обозначает начало имени атрибута, если attribute
не является допустимым идентификатором в Visual Basic.
attribute
Обязательный. Имя атрибута для доступа к форме [prefix
:]name
.
Часть | Description |
---|---|
prefix |
Необязательно. Префикс пространства имен XML для атрибута. Должно быть глобальным пространством имен XML, определенным с помощью оператора Imports . |
name |
Обязательный. Имя локального атрибута. См . имена объявленных XML-элементов и атрибутов. |
> Необязательный. Обозначает конец имени атрибута, если attribute
не является допустимым идентификатором в Visual Basic.
Возвращаемое значение
Строка, содержащая значение attribute
. Если имя атрибута не существует, Nothing
возвращается.
Замечания
Свойство оси атрибута XML можно использовать для доступа к значению атрибута по имени объекта или из XElement первого элемента в коллекции XElement объектов. Можно получить значение атрибута по имени или добавить новый атрибут в элемент, указав новое имя перед идентификатором @.
При обращении к XML-атрибуту с помощью идентификатора @значение атрибута возвращается в виде строки, и не нужно явно указывать Value это свойство.
Правила именования атрибутов XML отличаются от правил именования для идентификаторов Visual Basic. Чтобы получить доступ к XML-атрибуту с именем, который не является допустимым идентификатором Visual Basic, заключите имя в угловые скобки (< и >).
Пространства имен XML
Имя в свойстве оси атрибута может использовать только префиксы пространства имен XML, объявленные глобально с помощью инструкции Imports
. В нем нельзя использовать префиксы пространства имен XML, объявленные локально с помощью литералов XML-элемента. Дополнительные сведения см. в разделе "Импорт" (пространство имен XML).
Пример 1
В следующем примере показано, как получить значения 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>
Пример 2
В следующем примере показано, как создавать атрибуты для 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>
Пример 3
В следующем примере используется синтаксис угловой скобки для получения значения именованного number-type
атрибута XML, который не является допустимым идентификатором в Visual Basic.
Dim phone As XElement =
<phone number-type=" work">425-555-0145</phone>
Console.WriteLine("Phone type: " & phone.@<number-type>)
Этот пример кода отображает следующий текст:
Phone type: work
Пример 4
В следующем примере 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