Чтобы создать и сохранить новый XML-документ, мы воспользовались классом XMLDocument, который позволяет представить существующий XML-документ в виде объекта с набором полей и методов для манипуляции этими полями. Он позволяет создавать и удалять элементы XML как по имени, так и по индексу, осуществлять поиск нужного элемента, заменять или дублировать элементы, сохранять измененный документ. Единственным недостатком этого класса является то, что документ полностью загружается в создаваемый объект. Поскольку на Pocket PC и файловая система, и оперативная память программы физически являются одним и тем же устройством, то просто происходит дублирование информации на время работы с документом.

19. Процедура загрузки данных для текущего дня в компонент ListView приведена в листинге 6.8.

Листинг 6.8

Private Sub Data_Load(ByVal MyDate As String)

\'Открываем файл, для это сначала получаем полный путь каталога,

\'в котором расположена программа в строковую переменную dirStr

dirStr = IO.Path.GetDirectoryName_

(Reflection.Assembly.GetExecutingAssembly.GetName.CodeBase.ToString)

\'Создаем экземпляр объекта XmlTextReader

Dim xmlrdrMy As New Xml.XmlTextReader(dirStr + «\2005.xml»)

Dim MyCount, MyIndex As Integer

Dim lvItem As ListViewItem

\'Не реагируем на пробелы и управляющие символы

xmlrdrMy.WhitespaceHandling = xmlrdrMy.WhitespaceHandling.None

\'Переходим к содержимому, пропуская заголовочную часть

xmlrdrMy.MoveToContent()

\'В цикле считываем значения из файла, добавляем новую строку в ListView

\'для каждого тега Index и копируем значения атрибутов тега Index в

\'соответствующие поля записи ListView

ListView1.Items.Clear()

ListView1.Refresh()

While Not xmlrdrMy.EOF

If xmlrdrMy.Name = «Data» Then

If xmlrdrMy.GetAttribute(«value») = MyDate Then

MyIndex = CInt(xmlrdrMy.GetAttribute(«Cnt»))

For MyCount = 0 To MyIndex – 1

xmlrdrMy.Read()

lvItem = New ListViewItem(xmlrdrMy.GetAttribute(«Category»))

ListView1.Items.Add(lvItem)

ListView1.Items.Item(MyCount). SubItems.Add_

(xmlrdrMy.GetAttribute(«StartOf»))

ListView1.Items.Item(MyCount). SubItems.Add(xmlrdrMy.GetAttribute(«EndOf»))

ListView1.Items.Item(MyCount). SubItems.Add(xmlrdrMy.GetAttribute(«Note»))

Next

End If

End If

\'Считываем следующий элемент из файла XML

xmlrdrMy.Read()

End While

\'Закрываем файл

xmlrdrMy.Close()

End Sub

Перейти на страницу:

Похожие книги