Работать с файлами в формате XML можно на любой платформе, используя любой язык программирования, имеющий соответствующий набор методов.
Рассмотрим пример создания XML-файла при помощи VB.NET. Данный пример тестировался в Visual Studio.NET 2010.
Первым делом нужно создать новый проект, например консольное приложение (Console Application).
Для работы с XML-документами имеется набор классов. Для создания файла нам потребуется класс XMLTextWriter. При создании XML-документа мы должны указать путь к создаваемому файлу и кодировку.
Для примера будем составлять каталог товаров. Создадим отдельную процедуру для записи позиции в каталог. Код примера выглядит следующим образом:
Module Module1
Sub Main()
' Создаем объект для записи XML-данных
Dim Writer As New Xml.XmlTextWriter("C:\Test.xml", System.Text.Encoding.UTF8)
' Записываем объявление версии XML
writer.WriteStartDocument(True)
' Указываем, что XML-документ должен быть отформатирован
Writer.Formatting = Xml.Formatting.Indented
' Задаем 2 пробела для выделения вложенных данных
writer.Indentation = 2
' Записываем открывающий тег
writer.WriteStartElement("Table")
' Вызываем процедуру записи позиции
addProduct(1, "Product 1", "1000", Writer)
addProduct(2, "Product 2", "2000", Writer)
addProduct(3, "Product 3", "3000", Writer)
addProduct(4, "Product 4", "4000", Writer)
' Закрываем тег
writer.WriteEndElement()
' Заканчиваем запись (закрываем все не закрытые элементы)
writer.WriteEndDocument()
' Закрываем файл
writer.Close()
End Sub
' Процедура записи позиции
Private Sub addProduct(ByVal pID As String, ByVal pName As String, ByVal pPrice As String, ByVal writer As Xml.XmlTextWriter)
writer.WriteStartElement("Product")
' Запись открывающего тега
writer.WriteStartElement("Product_id")
' Запись обычных тексовых данных в качестве содержимого тега
writer.WriteString(pID)
' Запись закрывающего тега
writer.WriteEndElement()
writer.WriteStartElement("Product_name")
writer.WriteString(pName)
writer.WriteEndElement()
writer.WriteStartElement("Product_price")
writer.WriteString(pPrice)
writer.WriteEndElement()
writer.WriteEndElement()
End Sub
End Module