Чтение онлайн

на главную - закладки

Жанры

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

Салмре Иво

Шрифт:

//<Root><UserInfo><Name>

xmlTextWriter.WriteEndElement; //Закрыть дескриптор ФИО

//<Root><UserInfo>

//<Root><UserInfo>

xmlTextWriter.WriteStartElement(XML_USERID_TAG);

//<Root><UserInfo><UserID>

//Запись значения

xmlTextWriter.WriteString(userId.ToString);

xmlTextWriter.WriteEndElement;

//Закрыть
дескриптор UserID

//<Root><Userlnfo>

xmlTextWriter.WriteEndElement; //Закрыть дескриптор UserInfo

//<Root>

xmlTextWriter.WriteEndElement; //Закрыть дескриптор документа

//

xmlTextWriter.Close;

 }

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

 //Загружает пользовательское состояние

 //

 // [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;

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

Ратник

Ланцов Михаил Алексеевич
3. Помещик
Фантастика:
альтернативная история
7.11
рейтинг книги
Ратник

Хозяин Хаоса I

Петров Максим Николаевич
1. Хозяин Хаоса
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Хозяин Хаоса I

Черный Маг Императора 11

Герда Александр
11. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Черный Маг Императора 11

Товарищ "Чума" 10

lanpirot
10. Товарищ "Чума"
Фантастика:
городское фэнтези
попаданцы
альтернативная история
5.00
рейтинг книги
Товарищ Чума 10

Сапер

Вязовский Алексей
1. Сапер
Фантастика:
героическая фантастика
попаданцы
альтернативная история
5.29
рейтинг книги
Сапер

Волкодав

Семёнова Мария Васильевна
1. Волкодав
Фантастика:
фэнтези
героическая фантастика
9.46
рейтинг книги
Волкодав

Газлайтер. Том 6

Володин Григорий
6. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 6

На границе империй. Том 9. Часть 2

INDIGO
15. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 2

Воплощение Похоти

Некрасов Игорь
1. Воплощение Похоти
Фантастика:
юмористическое фэнтези
попаданцы
рпг
аниме
5.00
рейтинг книги
Воплощение Похоти

Последний реанорец. Том I и Том II

Павлов Вел
1. Высшая Речь
Фантастика:
фэнтези
7.62
рейтинг книги
Последний реанорец. Том I и Том II

Первый среди равных. Книга III

Бор Жорж
3. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
6.00
рейтинг книги
Первый среди равных. Книга III

Черный Маг Императора 23

Герда Александр
23. Черный маг императора
Фантастика:
юмористическое фэнтези
аниме
сказочная фантастика
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Черный Маг Императора 23

Мастер Трав III

Мордорский Ваня
3. Мастер Трав
Фантастика:
фэнтези
рпг
фантастика: прочее
попаданцы
5.75
рейтинг книги
Мастер Трав III

Тайна корабля

Стивенсон Роберт Льюис
Проза:
классическая проза
5.00
рейтинг книги
Тайна корабля