Программирование мобильных устройств на платформе .NET Compact Framework (Салмре) - страница 553

>   'Здесь мы можем извлечь некоторый фактический текст

>   'и получить данные, которые пытаемся загрузить

>   '--------------------------------------------------

>  Case System.Xml.XmlNodeType.Text

>   Select Case currentReadLocation

>   Case ReadLocation.inFirstName

>    firstName = xmlReader.Value

>   Case ReadLocation.inLastName

>    lastName = xmlReader.Value

>   Case ReadLocation.inUserID

>    userId = CInt(xmlReader.Value)

>   End Select

>   'Конец оператора Case "System.Xml.XmlNodeType.Text"


>   '----------------------------------------------------

>   'Вызывается, когда встречается конец

>   'элемента

>   '

>   'Мы можем захотеть переключить состояние в зависимости

>   'от вида покидаемого узла, чтобы указать на то, что

>   'собираемся вернуться назад к его предку

>   '-----------------------------------------------------

>  Case System.Xml.XmlNodeType.EndElement

>   Dim continueParsing As Boolean

>   continueParsing = LoadHelper_EndElementEncountered( _

>    currentReadLocation)

>   If (continueParsing = False) Then

>    GoTo finished_reading_wanted_data

>   End If

>  Case Else

>   'He страшно, если имеются XML-узлы других типов, но

>   'в нашем примере работы с XML-документом мы должны

>   'оповестить об этом факте

>   MsgBox( _

>    "Встретился непредвиденный XML-тип " + xmlReader.Name)

>  End Select 'Конец оператора Case, используемого для определения текущего

>  'типа XML-элeмeнтa, oбpaбaтывaeмoгo анализатором


>  'Перейти к следующему узлу

>  readSuccess = xmlReader.Read()

> End While

> 'Если мы оказались в этом месте программы, не покинув

> 'XML-дескриптора UserInfo, то с XML-данными, которые мы считываем,

> 'что-то не так

> Throw New Exception("He найден элемент UserInfo в XML-документе!")

>finished reading_wanted_data:

> 'Закрыть файл, поскольку работа с ним закончена!

> xmlReader.Close()

>End Sub


>'--------------------------------------------------------

>'Вспомогательный код, ответственный за принятие решения

>'относительно того, в какое состояние необходимо перейти,

>'когда встречается закрывающий дескриптор

>'--------------------------------------------------------

>Private Shared Function LoadHelper_EndElementEncountered( _

> ByRef currentReadLocation As ReadLocation) As Boolean

> Select Case (currentReadLocation)


> 'Если мы покидаем узел Name, то должны вернуться

> 'обратно в узел UserInfo

> Case ReadLocation.inName

>  currentReadLocation = ReadLocation.inUserInfo


> 'Если мы покидаем узел FirstName, то должны вернуться

> 'обратно в узел Name

> Case ReadLocation.inFirstName

>  currentReadLocation = ReadLocation.inName


> 'Если мы покидаем узел LastName, то должны вернуться