В данной статье описывается переход
Расширяемый язык разметки (XML) документы с объектом
XPathNavigator , который создается из объекта
XPathDocument . В этом примере загружает объект
XPathDocument с данными XML, создает объект
XPathNavigator как представлением данных и отображает XML путем просмотра
по документу.
Требования
В
Ниже приведены оборудования, программного обеспечения, сети
инфраструктуры и пакетов обновления, необходимо:
- Microsoft Windows Server 2003, Microsoft Windows 2000
Professional, Windows 2000 Server, Windows 2000 Advanced Server или Microsoft
Сервер Windows NT 4.0
- Visual Studio Microsoft 2005 или Microsoft Visual Studio
.NET
Это
предполагается, что вы знакомы с следующие разделы:
- Терминология XML.
- Создание и чтение XML-файлов
- Синтаксис языка XML Path (XPath)
Использование класса XPathNavigator для перемещения XML
- В 2005 г. Visual Studio или Visual Studio. NET, создание
2005 Visual Basic или Visual Basic .NET консольного приложения.
Примечание В этом примере используется файл с именем Books.xml. Можно создать
файл Books.xml или использовать образец, который входит в состав
Примеры использования комплект SDK для разработки программного обеспечения .NET. Если у вас есть примеры использования
установки Books.xml находится в следующей папке: \Program Files\Microsoft.NET\FrameworkSDK\Samples\Quickstart\Howto\Samples\Xml\Transformxml\VB
Кроме того,
Этот файл можно получить, посетив следующий веб-узел:
Необходимо скопировать файл Books.xml в
Папку \bin\Debug, расположенный в папке, в котором создана эта
проект. - Убедитесь, что проект ссылается на пространство имен System.Xml .
- Использовать оператор Imports для пространств имен Xml и XPath , таким образом, не требуется указывать объявления
в этих пространствах имен в коде. Необходимо использовать оператор Imports перед всеми остальными объявлениями.
Imports System.Xml
Imports System.Xml.XPath
- Объявите соответствующих переменных. Объявите объект XPathDocument для хранения XML-документ и объект XPathNavigator для вычисления выражений XPath и перемещения по
документ. Объявите строковый объект для выражения XPath. Добавьте код в объявление
процедура Main в Module1.
Dim nav As XPathNavigator
Dim docNav As XPathDocument
- Загрузите объект XPathDocument в примере файл Books.xml. Класс XPathDocument использует преобразования расширяемого языка стилей (XSLT)
для обеспечения быстрого и производительности кэша для обработки XML-документов.
Аналогично для модели объектов документа XML (DOM), но значительно оптимизирован
для обработки XSLT и модели данных XPath.
'Open the XML.
docNav = New XPathDocument("books.xml")
- Создайте объект XPathNavigator из документа. XPathNavigator используется для перемещения по узлам атрибутов и
узлы пространств имен в XML-документе.
'Create a navigator to query with XPath.
nav = docNav.CreateNavigator
- Перемещение корневого документа с помощью метода MoveToRoot . MoveToRoot задает навигатор на узел документа, который содержит весь
дерево узлов.
'Initial XPathNavigator to start at the root.
nav.MoveToRoot()
- Используйте метод MoveToFirstChild для перемещения для дочерних XML-документа. Метод MoveToFirstChild перемещает первый дочерний элемент текущего узла. В случае
источника Books.xml при перемещении от корневого документа в
дочерние элементы, в разделе комментариев и узел Bookstore.
'Move to the first child node (comment field).
nav.MoveToFirstChild()
- С помощью метода MoveToNext итерацию узлов на уровне того же уровня. Перемещение метода MoveToNext следующий одноуровневый элемент текущего узла.
'Loop through all the root nodes.
Do
...
Loop While nav.MoveToNext
- Убедитесь, что только обработке узлов элемента следует использовать свойство NodeType
и использовать свойство Value для отображения представления текста элемента.
Do
'Find the first element.
If nav.NodeType = XPathNodeType.Element Then
'If children exist.
If nav.HasChildren Then
'Move to the first child.
nav.MoveToFirstChild()
'Loop through all the children.
Do
'Display the data.
Console.Write("The XML string for this child ")
Console.WriteLine("is '{0}'", nav.Value)
Loop While nav.MoveToNext
End If
End If
Loop While nav.MoveToNext
- Чтобы определить наличие атрибутов у узла с помощью свойства HasAttributes выполняется . Вы можете
также можно используйте другие методы, например MoveToNextAttribute, для перемещения атрибута и проверять его значение. Обратите внимание, это
сегмент кода проходит только через потомки корневого узла и не
всего дерева.
Do
'Find the first element.
If nav.NodeType = XPathNodeType.Element Then
'if children exist
If nav.HasChildren Then
'Move to the first child.
nav.MoveToFirstChild()
'Loop through all the children.
Do
'Display the data.
Console.Write("The XML string for this child ")
Console.WriteLine("is '{0}'", nav.Value)
'Check for attributes.
If nav.HasAttributes Then
Console.WriteLine("This node has attributes")
End If
Loop While nav.MoveToNext
End If
End If
Loop While nav.MoveToNext
- Добавить паузу в конце отображения консоли более с помощью метода ReadLine объекта консоли
легко отображать результаты выше.
'Pause.
Console.ReadLine()
- Построение и запуск проекта консольного приложения.
Полный пример кода
Imports System.Xml
Imports System.Xml.XPath
Module Module1
Sub Main()
Dim nav As XPathNavigator
Dim docNav As XPathDocument
docNav = New XPathDocument("books.xml")
nav = docNav.CreateNavigator
nav.MoveToRoot()
'Move to the first child node (comment field).
nav.MoveToFirstChild()
Do
'Find the first element.
If nav.NodeType = XPathNodeType.Element Then
'if children exist
If nav.HasChildren Then
'Move to the first child.
nav.MoveToFirstChild()
'Loop through all the children.
Do
'Display the data.
Console.Write("The XML string for this child ")
Console.WriteLine("is '{0}'", nav.Value)
'Check for attributes.
If nav.HasAttributes Then
Console.WriteLine("This node has attributes")
End If
Loop While nav.MoveToNext
End If
End If
Loop While nav.MoveToNext
'Pause.
Console.ReadLine()
End Sub
End Module
Для
Дополнительные сведения, посетите следующий веб-узла Microsoft Developer Network (MSDN)
сайты:
Для
Дополнительные сведения, посетите следующий веб-узел консорциума World Wide Web (W3C):
Код статьи: 301111 - Последнее изменение :: 30 сентября 2012 г. - Редакция: 6.0
Информация в данной статье относится к следующим продуктам.
- Microsoft Visual Basic 2005
- Microsoft Visual Basic .NET 2003 Standard Edition
- Microsoft Visual Basic .NET 2002 Standard Edition
| kbvs2005applies kbvs2005swept kbdownload kbsample kbhowtomaster kbmt KB301111 KbMtru |
Переведено с помощью машинного переводаВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:
301111
(http://support.microsoft.com/kb/301111/en-us/
)