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

Салмре Иво

Шрифт:

 //

 // [in] fileName: Имя файла, используемого для сохранения данных

 // [out] userId: Загруженный идентификатор пользователя

 // [out] firstName: Загруженное имя пользователя

 // [out] lastName: Загруженная фамилия пользователя

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

 public static void XML_LoadUserInfo(string fileName, out int userId, out string firstName,out string lastName) {

ReadLocation currentReadLocation;

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

userId = 0;

firstName = "";

lastName = "";

System.Xml.XmlTextReader xmlReader = new System.Xml.XmlTextReader(fileName);

xmlReader.WhitespaceHandling = System.Xml.WhitespaceHandling.None;

bool readSuccess;

readSuccess = xmlReader.Read;

if (readSuccess == false) {

throw new System.Exception("Отсутствуют XML-данные для чтения!");

}

//Убедиться в том, что мы распознали корневой дескриптор

if (xmlReader.Name != XML_ROOT_TAG) {

throw new System.Exception("Корневой дескриптор отличается от ожидаемого!");

}

//Отметить текущее местоположение в документе

currentReadLocation = ReadLocation.inAllMyData;

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

//Цикл прохождения документа и чтение необходимых данных

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

while (readSuccess) {

switch (xmlReader.NodeType) {

//Вызывается при входе в новый элемент

case System.Xml.XmlNodeType.Element: {

string nodeName = xmlReader.Name;

LoadHelper_NewElementEncountered(nodeName, ref currentReadLocation);

break;

}

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

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

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

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

case System.Xml.XmlNodeType.Text: {

switch (currentReadLocation) {

case ReadLocation.inFirstName: {

firstName = xmlReader.Value;

break;

}

case ReadLocation.inLastName: {

lastName = xmlReader.Value;

break;

}

case ReadLocation.inUserID: {

userId = System.Convert.ToInt32(xmlReader.Value);

break;

}

}

break;

}

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

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

//элемента

//

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

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

//вернуться назад к его предку

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

case System.Xml.XmlNodeType.EndElement: {

bool continueParsing;

continueParsing = LoadHelper_EndElementEncountered(ref currentReadLocation);

if (continueParsing ==false) {

goto finished_reading_wanted_data;

}

break;

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

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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