Чтение онлайн

ЖАНРЫ

Программирование мобильных устройств на платформе .NET Compact Framework
Шрифт:

'Присоединить подузел NameInfo (вместе с его дочерними узлами)

'к узлу высшего уровня

topNodeForUserData.AppendChild(subNodeForNameInfo)

'------------------

'Сохранить документ

'------------------

Try

xmlDocument.Save(fileName)

Catch ex As System.Exception

MsgBox( _

"Ошибка при сохранении XML-документа - " + ex.Message)

End Try

End Sub 'Конец функции

End Class 'Конец класса

Листинг 10.2. Вызов кода, предназначенного для сохранения и загрузки XML-документа

Private Sub Button1_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles Button1.Click

Const FILENAME As String = "TestFileName.XML"

'Сохранить, используя XML DOM

SaveAndLoadXML_UseDOM.XML_SaveUserInfo(FILENAME, 14, "Ivo", _

"Salmre")

'Сохранить, используя объект однонаправленной записи XMLWriter

'SaveAndLoadXML_UseReaderWriter.XML_SaveUserInfo(FILENAME, _

' 18, "Ivo", "Salmre")

Dim userID As Integer

Dim firstName As String

Dim lastName As String

'Загрузить, используя XML DOM

SaveAndLoadXML_UseDOM.XML_LoadUserInfo(FILENAME, userID, _

firstName, lastName)

'Загрузить, используя объект однонаправленного чтения XMLReader

'SaveAndLoadXML_UseReaderWriter.XML_LoadUserInfo(FILENAME, _

' userID, firstName, lastName)

MsgBox("Готово! " + _

userID.ToString + ", " + lastName + ", " + firstName)

End Sub

Листинг 10.3. Использование однонаправленного чтения/записи XML-данных для загрузки XML-документа из файла и его сохранения

Option Strict On

Option Compare Binary

Imports System

Public Class SaveAndLoadXML UseReaderWriter

'XML-дескрипторы, которые мы будем использовать в своем документе

Const XML_ROOT_TAG As String = "AllMyData"

Const XML_USERINFO_TAG As String = "UserInfo"

Const XML_USERID_TAG As String = "UserID"

Const XML_NAMEINFO_TAG As String = "Name"

Const XML_FIRSTNAME_TAG As String = "FirstName"

Const XML_LASTNAME TAG As String = "LastName"

'Набор состояний, отслеживаемых по мере чтения данных

Private Enum ReadLocation

inAllMyData

inUserInfo

inUserID

inName

inFirstName

inLastName

End Enum

'--------------------------------------------------------------------

'Сохраняет пользовательское состояние

' [in] fileName: Имя файла, используемого для сохранения данных

' [in] userId: Идентификатор пользователя, который мы хотим сохранить

' [in] firstName: Имя пользователя, которое мы хотим сохранить

' [in] lastName: Фамилия пользователя, которую мы хотим сохранить

'--------------------------------------------------------------------

Public Shared Sub XML_SaveUserInfo(ByVal fileName As String, _

ByVal userId As Integer, ByVal firstName As String, _

ByVal lastName As String)

Dim xmlTextWriter As System.Xml.XmlTextWriter

xmlTextWriter = New System.Xml.XmlTextWriter(fileName, _

System.Text.Encoding.Default)

'Записать содержимое документа!

'<Root>

xmlTextWriter.WriteStartElement(XML_ROOT_TAG)

'<Root>

xmlTextWriter.WriteStartElement(XML_USERINFO_TAG)

'<Root><UserID>

'<Root><UserInfo>

xmlTextWriter.WriteStartElement(XML_NAMEINFO_TAG)

'<Root><UserInfo><Name>

xmlTextWriter.WriteStartElement(XML_FIRSTNAME_TAG)

'<Root><UserInfo><Name><FirstName>

xmlTextWriter.WriteString(firstName) 'Запись значения

xmlTextWriter.WriteEndElement 'Закрыть дескриптор имени

'<Root><UserInfo><Name>

xmlTextWriter.WriteStartElement(XML_LASTNAME_TAG)

'<Root><UserInfo><Name><LastName>

xmlTextWriter.WriteString(lastName) 'Запись значения

xmlTextWriter.WriteEndElement 'Закрыть дескриптор фамилии

'<Root><UserInfo><Name>

xmlTextWriter.WriteEndElement 'Закрыть дескриптор ФИО

'<Root><UserInfo>

Поделиться с друзьями: