Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Visual Basic предоставляет поддержку LINQ to XML с помощью XML-литералов и осевых свойств XML. Это позволяет использовать знакомый и удобный синтаксис для работы с XML в коде Visual Basic. XML-литералы позволяют включать XML непосредственно в код. Свойства оси XML позволяют получить доступ к дочерним узлам, потомкам и атрибутам XML-литерала. Для получения более подробной информации см. Обзор XML-литералов и Работа с XML в Visual Basic.
LINQ to XML — это API программирования в памяти, разработанный специально для использования Language-Integrated запроса (LINQ). Хотя api LINQ можно вызывать напрямую, только Visual Basic позволяет объявлять XML-литералы и напрямую получать доступ к свойствам оси XML.
Замечание
Xml-литералы и свойства оси XML не поддерживаются в декларативном коде на странице ASP.NET. Чтобы использовать функции XML в Visual Basic, поместите код на страницу кода вашего приложения ASP.NET.
Сведения о связанных демонстрациях видео см. в статье "Как начать работу с LINQ to XML" и "Как создать электронные таблицы Excel с помощью LINQ to XML?".
Создание XML
В Visual Basic существует два способа создания деревьев XML. Вы можете объявить XML-литерал непосредственно в коде или использовать API LINQ для создания дерева. Оба процесса позволяют коду отражать окончательную структуру xml-дерева. Например, в следующем примере кода создается XML-элемент:
Dim contact1 As XElement =
<contact>
<name>Patrick Hines</name>
<phone type="home">206-555-0144</phone>
<phone type="work">425-555-0145</phone>
</contact>
Дополнительные сведения см. в статье "Создание XML в Visual Basic".
Доступ к XML и навигация
Visual Basic предоставляет свойства оси XML для доступа к структурам XML и навигации по ней. Эти свойства позволяют получить доступ к XML-элементам и атрибутам, указав имена дочерних элементов XML. Кроме того, можно явно вызвать методы LINQ для навигации и поиска элементов и атрибутов. Например, в следующем примере кода свойства оси XML используются для ссылки на атрибуты и дочерние элементы XML-элемента. В примере кода используется запрос LINQ для извлечения дочерних элементов и вывода их в виде XML-элементов, эффективно выполняющих преобразование.
' Place Imports statements at the top of your program.
Imports <xmlns:ns="http://SomeNamespace">
Module Sample1
Sub SampleTransform()
' Create test by using a global XML namespace prefix.
Dim contact =
<ns:contact>
<ns:name>Patrick Hines</ns:name>
<ns:phone ns:type="home">206-555-0144</ns:phone>
<ns:phone ns:type="work">425-555-0145</ns:phone>
</ns:contact>
Dim phoneTypes =
<phoneTypes>
<%= From phone In contact.<ns:phone>
Select <type><%= phone.@ns:type %></type>
%>
</phoneTypes>
Console.WriteLine(phoneTypes)
End Sub
End Module
Дополнительные сведения см. в разделе "Доступ к XML" в Visual Basic.
Пространства имен XML
Visual Basic позволяет указать псевдоним для глобального пространства имен XML с помощью инструкции Imports
. В следующем примере показано, как использовать инструкцию Imports
для импорта пространства имен XML:
Imports <xmlns:ns="http://someNamespace">
Можно использовать псевдоним пространства имен XML при объявлении XML-литералов для XML-документов и элементов и при доступе к свойствам оси XML.
Определённый объект для префикса пространства имен можно получить с помощью XNamespace.
Дополнительные сведения см. в разделе "Импорт" (пространство имен XML).
Использование пространств имен XML в XML-литералах
В следующем примере показано, как создать XElement объект, использующий глобальное пространство имен ns
.
Dim contact1 As XElement =
<ns:contact>
<ns:name>Patrick Hines</ns:name>
<ns:phone type="home">206-555-0144</ns:phone>
<ns:phone type="work">425-555-0145</ns:phone>
</ns:contact>
Console.WriteLine(contact1)
Компилятор Visual Basic преобразует XML-литералы, содержащие псевдонимы пространства имен XML, в эквивалентный код, использующий нотацию XML для использования пространств имен XML с атрибутом xmlns
. При компиляции код в примере предыдущего раздела создает практически тот же исполняемый код, что и следующий пример:
Dim contact2 As XElement =
<ns1:contact xmlns:ns1="http://someNamespace">
<ns1:name>Patrick Hines</ns1:name>
<ns1:phone type="home">206-555-0144</ns1:phone>
<ns1:phone type="work">425-555-0145</ns1:phone>
</ns1:contact>
Console.WriteLine(contact2)
Использование пространств имен XML в свойствах оси XML
Пространства имен XML, объявленные в XML-литералах, недоступны для использования в свойствах оси XML. Однако глобальные пространства имен можно использовать со свойствами оси XML. Используйте двоеточие для разделения префикса пространства имен XML от имени локального элемента. Ниже приведен пример:
Console.WriteLine("Contact name is: " & contact1.<ns:name>.Value)