> 'Здесь мы можем извлечь некоторый фактический текст
> 'и получить данные, которые пытаемся загрузить
> '--------------------------------------------------
> 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, то должны вернуться