Вход/Регистрация
Программирование мобильных устройств на платформе .NET Compact Framework
вернуться

Салмре Иво

Шрифт:

 ' [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)

 'Начинаем с нулевых значений

 userId = 0

 firstName = ""

 lastName = ""

 'Предполагаем, что данные еще не загружены

 Dim gotUserInfoData As Boolean = False

 Dim xmlDocument As System.Xml.XmlDocument = _

New System.Xml.XmlDocument

 xmlDocument.Load(fileName)

 'Получить корневой узел

 Dim rootElement As System.Xml.XmlElement

 rootElement = _

CType(xmlDocument.ChildNodes(0), System.Xml.XmlElement)

 'Убедиться в том, что корневой узел согласуется с ожидаемым текстом,

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

 If (rootElement.Name <> XML_ROOT_TAG) Then

Throw New Exception("Тип корневого узла не совпадает с ожидаемым!")

 End If

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

 'Простой конечный автомат для итеративного обхода всех узлов

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

 Dim childOf_RootNode As System.Xml.XmlElement

 For Each childOf_RootNode In _

rootElement.ChildNodes

'Если это узел UserInfo, то мы хотим просмотреть его содержимое

If (childOf_RootNode.Name = XML_USERINFO_TAG) Then

gotUserInfoData = True

'Пользовательские данные найдены

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

'Загрузить каждый из подэлементов

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

Dim child_UserDataNode As System.Xml.XmlElement

For Each child_UserDataNode In _

childOf_RootNode.ChildNodes

'Идентификатор пользователя (UserID)

If (child_UserDataNode.Name = XML_USERID_TAG) Then

userId = CInt(child_UserDataNode.InnerText)

'ФИО пользователя (UserName)

ElseIf (child_UserDataNode.Name = XML_NAMEINFO_TAG) Then

Dim child_Name As System.Xml.XmlElement

For Each child_Name In child_UserDataNode.ChildNodes

'Имя (FirstName)

If (child_Name.Name = XML_FIRSTNAME_TAG) Then

firstName = child_Name.InnerText

'Фамилия (LastName)

ElseIf (chi1d_Name.Name = XML_LASTNAME_TAG) Then

lastName = child_Name.InnerText

End If

Next 'Конец цикла разбора UserName

End If 'Конец оператора if, осуществляющего проверку UserName

Next 'Конец цикла разбора UserInfo

End If 'Конец оператора if, осуществляющего проверку UserInfo

 Next 'Конец цикла разбора корневого узла

 If (gotUserInfoData = False) Then

Throw New Exception("Данные пользователя в XML-документе не найдены!")

 End If

End Sub

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

  • Читать дальше
  • 1
  • ...
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: