xmlTextWriter.WriteStartElement(XML_LASTNAME_TAG)
'
xmlTextWriter.WriteString(lastName) 'Запись значения
xmlTextWriter.WriteEndElement 'Закрыть дескриптор фамилии
'
xmlTextWriter.WriteEndElement 'Закрыть дескриптор ФИО
'
'
xmlTextWriter.WriteStartElement(XML_USERID_TAG)
'
'Запись значения
xmlTextWriter.WriteString(userId.ToString)
xmlTextWriter.WriteEndElement 'Закрыть дескриптор UserID
'
xmlTextWriter.WriteEndElement
'Закрыть дескриптор UserInfo
'
xmlTextWriter.WriteEndElement 'Закрыть дескриптор документа
xmlTextWriter.Close
End Sub
'--------------------------------------------------------------
'Загружает пользовательское состояние
' [in] fileName: Имя файла, используемого для сохранения данных
' [out] userId: Загруженный идентификатор пользователя
' [out] firstName: Загруженное имя пользователя
' [out] lastName: Загруженная фамилия пользователя
'--------------------------------------------------------------
Public Shared Sub XML_LoadUserInfo(ByVal fileName As String, _
ByRef userId As Integer, ByRef firstName As String, _
ByRef lastName As String)
Dim currentReadLocation As ReadLocation
'Начинаем с нулевых значении
userId = 0
firstName = ""
lastName = ""
Dim xmlReader As System.Xml.XmlTextReader = _
New System.Xml.XmlTextReader(fileName)
xmlReader.WhitespaceHandling = _
System.Xml.WhitespaceHandling.None
Dim readSuccess As Boolean
readSuccess = xmlReader.Read
If (readSuccess = False) Then
Throw New System.Exception("Отсутствуют XML-данные для чтения!")
End If
'Убедиться в том, что мы распознали корневой дескриптор
If (xmlReader.Name <> XML_ROOT_TAG) Then
Throw New System.Exception( _
"Корневой дескриптор отличается от ожидаемого!")
End If
'Отметить текущее местоположение в документе
currentReadLocation = ReadLocation.inAllMyData
'------------------------------------------------------
'Цикл прохождения документа и чтение необходимых данных
'------------------------------------------------------
While (readSuccess)
Select Case (xmlReader.NodeType)
'Вызывается при входе в новый элемент
Case System.Xml.XmlNodeType.Element
Dim nodeName As String = xmlReader.Name
LoadHelper_NewElementEncountered(nodeName, _
currentReadLocation)
'--------------------------------------------------
'Здесь мы можем извлечь некоторый фактический текст
'и получить данные, которые пытаемся загрузить
'--------------------------------------------------
Case System.Xml.XmlNodeType.Text
Select Case currentReadLocation
Case ReadLocation.inFirstName
firstName = xmlReader.Value
Case ReadLocation.inLastName
lastName = xmlReader.Value