Шрифт:
}
//-----------------------------------------------------------
//Простой конечный автомат для итеративного обхода всех узлов
//-----------------------------------------------------------
foreach(System.Xml.XmlElement childOf_RootNode in rootElement.ChildNodes) {
//Если это узел UserInfo, то мы хотим просмотреть его содержимое
if (childOf_RootNode.Name == XML_USERINFO_TAG) {
gotUserInfoData = true; //Пользовательские данные найдены
//--------------------------------
//Загрузить каждый из подэлементов
//--------------------------------
foreach(System.Xml.XmlElement child_UserDataNode in childOf_RootNode.ChildNodes) {
//Идентификатор пользователя (UserID)
if (child_UserDataNode.Name == XML_USERID_TAG) {
userId = System.Convert.ToInt32(child_UserDataNode.InnerText);
}
//ФИО пользователя (UserName)
else if (child_UserDataNode.Name == XML_NAMEINFO_TAG) {
foreach(System.Xml.XmlElement child_Name in child_UserDataNode.ChildNodes) {
//Имя (FirstName)
if (child_Name.Name == XML_FIRSTNAME_TAG) {
firstName = child_Name.InnerText;
}
//Фамилия (LastName)
else if (child_Name.Name == XML_LASTNAME_TAG) {
lastName = child_Name.InnerText;
}
}//Конец цикла разбора UserName
}//Конец оператора if, осуществляющего проверку UserName
}//Конец цикла разбора UserInfo
}// Конец оператора if, осуществляющего проверку UserInfo
}//Конец цикла разбора корневого узла
if (gotUserInfoData == false) {
throw new Exception ("Данные пользователя в XML-документе не найдены!");
}
}
//------------------------------------------------------------------
//Сохраняет пользовательское состояние
//
// [in] fileName: Имя файла, используемого для сохранения данных
// [in] userId:Идентификатор пользователя, которыймы хотим сохранить
// [in] firstName: Имя пользователя, которое мы хотим сохранить
// [in] lastName: Фамилия пользователя, которую мы хотим сохранить
//------------------------------------------------------------------
public static void XML_SaveUserInfo(string fileName, int userId, string firstName, string lastName) {
System.Xml.XmlDocument xmlDocument = new System.Xml.XmlDocument;
//-----------------------------------------
//Добавить элемент документа высшего уровня
//-----------------------------------------
System.Xml.XmlElement rootNodeForDocument;
rootNodeForDocument = xmlDocument.CreateElement(XML_ROOT_TAG);
xmlDocument.AppendChild(rootNodeForDocument);
//----------------------------------
//Добавить данные в элемент UserInfo
//----------------------------------
System.Xml.XmlElement topNodeForUserData;
topNodeForUserData = xmlDocument.CreateElement(XML_USERINFO_TAG);
rootNodeForDocument.AppendChild(topNodeForUserData);
//---------------------------------------
//Добавить значение UserID в наш документ
//---------------------------------------
//Создать подузел для информации о пространстве имен