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

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

Жанры

Программирование мобильных устройств на платформе .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. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Агенты ВКС

Контртеррор

Валериев Игорь
6. Ермак
Фантастика:
альтернативная история
5.00
рейтинг книги
Контртеррор

Древесный маг Орловского княжества

Павлов Игорь Васильевич
1. Орловское княжество
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Древесный маг Орловского княжества

Тринадцатый X

NikL
10. Видящий смерть
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Тринадцатый X

Убийца

Бубела Олег Николаевич
3. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.26
рейтинг книги
Убийца

Черный маг императора 3

Герда Александр
3. Черный маг императора
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Черный маг императора 3

Князь Андер Арес 3

Грехов Тимофей
3. Андер Арес
Фантастика:
рпг
аниме
фэнтези
5.00
рейтинг книги
Князь Андер Арес 3

Снега

Чепурин Юлий Петрович
Поэзия:
драматургия
5.00
рейтинг книги
Снега

Новые горизонты

Лисина Александра
5. Гибрид
Фантастика:
попаданцы
технофэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Новые горизонты

#Бояръ-Аниме. Газлайтер. Том 13

Володин Григорий Григорьевич
13. История Телепата
Фантастика:
боевая фантастика
аниме
попаданцы
фэнтези
5.00
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 13

Страж Кодекса. Книга V

Романов Илья Николаевич
5. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Страж Кодекса. Книга V

Эфемер

Прокофьев Роман Юрьевич
7. Стеллар
Фантастика:
боевая фантастика
рпг
7.23
рейтинг книги
Эфемер

Бастард Императора. Том 3

Орлов Андрей Юрьевич
3. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 3

Распутье

Басаргин Иван Ульянович
Сибириада
Проза:
военная проза
историческая проза
5.00
рейтинг книги
Распутье