Автор: Алексей Голубев
Хранить данные в XML-виде удобно, так как большинство современных языков программирования позволяют работать с XML-документами при помощи, готовых классов с необходимым набором функций.
Рассмотрим пример чтения XML-документа. Создайте XML-документ со следующим содержимым:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> <Table> <Product> <Product_id>1</Product_id> <Product_name>Product 1</Product_name> <Product_price>1000</Product_price> </Product> <Product> <Product_id>2</Product_id> <Product_name>Product 2</Product_name> <Product_price>2000</Product_price> </Product> <Product> <Product_id>3</Product_id> <Product_name>Product 3</Product_name> <Product_price>3000</Product_price> </Product> <Product> <Product_id>4</Product_id> <Product_name>Product 4</Product_name> <Product_price>4000</Product_price> </Product> </Table>
Кодировка XML-файла должна быть UTF-8. В нашем примере данный XML-документ будет называться Test.xml и располагаться в корневом каталоге. Естественно, вы можете указать для него любое другое имя и расположение. Создайте новый проект – Console Application.
Для сокращения программного кода и упрощения использования необходимых для нашего примера классов, добавьте в код модуля объявление пространств имен System.Xml и System.IO.
Imports System.Xml Imports System.IO
Процедура Main должна выглядеть следующим образом:
Sub Main() ' Создаем объект для хранения XML-документа Dim xmldoc As New XmlDataDocument() ' Создаем переменную для хранения списка узлов Dim xmlnode As XmlNodeList Dim i As Integer Dim str As String ' Загружаем XML-файл Dim fs As New FileStream("C:\Test.xml", FileMode.Open, FileAccess.Read) xmldoc.Load(fs) ' Делаем выборку узлов по названию тега xmlnode = xmldoc.GetElementsByTagName("Product") ' Выводим данные из дочерних элементов выбраных узлов For i = 0 To xmlnode.Count - 1 xmlnode(i).ChildNodes.Item(0).InnerText.Trim() str = xmlnode(i).ChildNodes.Item(0).InnerText.Trim() & _ " | " & xmlnode(i).ChildNodes.Item(1).InnerText.Trim() & _ " | " & xmlnode(i).ChildNodes.Item(2).InnerText.Trim() Console.WriteLine(str) Next ' Ждем нажатия клавиши для закрытия программы Console.ReadKey() End Sub
В результате выполнения кода в консоли вы увидете следующее:
1 | Product 1 | 1000 2 | Product 2 | 2000 3 | Product 3 | 3000 4 | Product 4 | 4000
Данный пример тестировался в Visual Studio.NET 2010.
- Ссылки по теме:
- Как создать XML-файл при помощи VB.NET?