XML и сопутствующие технологии

Пара слов о рассылке

Уважаемые подписчики!

В данной рассылке публикуются советы, примеры и статьи, связанные технологией XML. Не смотря на то, что сайт рассылки посвящен web-разработке, в рассылке публикуется также материал, который может быть связан с тематикой сайта косвенно. В рассылке появляется не только уже имеющаяся на сайте иформация, но и дополняющая ее.

Сайт рассылки: http://frnet.narod.ru/. На нем вы найдете все выпуски рассылки, а также полезную информацию по web-дизайну и web-программированию.

Буду рад услышать предложения или опубликовать материал, связанный с тематикой сайта или рассылки, от всех желающих поучаствовать. Для связи воспользуйтесь следующим адресом электронной почты: alexey-golubev@mail.ru.

Выпуск №7: Чтение XML-документа в VB.NET

Автор: Алексей Голубев

Хранить данные в 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.


Архив рассылки

Напоминаю, что архив рассылок сайта можно найти по адресу: http://frnet.narod.ru/subscribe.html.

Дополнительная информация

Материал рассылки может публиковаться и использоваться без каких-либо ограничений в некоммерческих целях, при условии сохранения авторства.

Если вы ищите единомышленников или хотите опубликовать информацию, связанную с тематикой рассылки или сайта, присылайте готовый текст объявления или статьи для размещения. Приветствуется информация о новых книгах, интересных статьях в журналах, новости и тенденции в web-разработке и информационных технологиях.

Также готов обменяться ссылками на сайты и рассылки, сделать не сложную разметку и дизайн вашей рассылки (на подобии данного и находящихся в архиве выпусков), с условием размещения информации об авторе дизайна и ссылки на сайт Frnet.

Спасибо за внимание. С уважением, Алексей Голубев.

Hosted by uCoz