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

Салмре Иво

Шрифт:

}

default: {

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

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

//оповестить об этом факте...

System.Windows.Forms.MessageBox.Show("Встретился непредвиденный XML-тип " + xmlReader.Name);

break;

}

} //Конец оператора Case, используемого для определения текущего

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

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

readSuccess = xmlReader.Read;

}

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

//XML-дескриптора UserInfo, то с XML-данными, которые

//мы считываем, что-то не так

throw new Exception("He найден элемент UserInfo в XML-документе!");

finished_reading_wanted_data:

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

xmlReader.Close;

 }

 //--------------------------------------------------------

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

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

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

 //--------------------------------------------------------

 private static bool LoadHelper_EndElementEncountered(ref ReadLocation currentReadLocation) {

switch (currentReadLocation) {

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

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

case ReadLocation.inName: {

currentReadLocation = ReadLocation.inUserInfo;

break;

}

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

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

case ReadLocation.inFirstName: {

currentReadLocation = ReadLocation.inName;

break;

}

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

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

case ReadLocation.inLastName: {

currentReadLocation = ReadLocation.inName;

break;

}

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

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

case ReadLocation.inUserID: {

currentReadLocation = ReadLocation.inUserInfo;

break;

}

//Если мы покидаем узел UserInfo, то мы только что

//закончили чтение данных в узлах UserID, FirstName

//и LastName.

//

//Можно выйти из цикла, поскольку у нас уже есть вся

//информация, которую мы хотели получить!

case ReadLocation.inUserInfo: {

return false; //Анализ должен быть прекращен

}

}

return true; //Продолжить анализ

 }

 private static void LoadHelper_NewElementEncountered(string nodeName,ref ReadLocation currentReadLocation) {

//------------------------------------------------------

//Мы вошли в новый элемент!

//

//B какое состояние переход возможен, зависит от того, в

//каком состоянии мы находимся в данный момент

//------------------------------------------------------

switch (currentReadLocation) {

//Если мы находимся в узле AllMyData, то переход возможен

  • Читать дальше
  • 1
  • ...
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • ...

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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