Литмир - Электронная Библиотека
Содержание  
A
A

       //Имя (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 в наш документ

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

  //Создать подузел для информации о пространстве имен

  System.Xml.XmlElement subNodeForUserID;

  subNodeForUserID = xmlDocument.CreateElement(XML_USERID_TAG);

  subNodeForUserID.InnerText = System.Convert.ToString(userId);

  //Присоединить подузел UserID к узлу высшего уровня

  topNodeForUserData.AppendChild(subNodeForUserID);

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

  //Добавить все значения NameInfo в наш документ

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

  //Создать подузел для информации о пространстве имен

  System.Xml.XmlElement subNodeForNameInfo;

  subNodeForNameInfo = xmlDocument.CreateElement(XML_NAMEINFO_TAG);

  //Имя (FirstName)

  System.Xml.XmlElement subNodeFirstName;

  subNodeFirstName = xmlDocument.CreateElement(XML_FIRSTNAME_TAG);

  subNodeFirstName.InnerText = firstName;

  //Фамилия (LastName)

  System.Xml.XmlElement subNodeLastName;

  subNodeLastName = xmlDocument.CreateElement(XML_LASTNAME_TAG);

  subNodeLastName.InnerText = lastName;

  //Присоединить подузлы имени и фамилии к родительскому

  //узлу NameInfo

  subNodeForNameInfo.AppendChild(subNodeFirstName);

  subNodeForNameInfo.AppendChild(subNodeLastName);

  //Присоединить подузел NameInfo (вместе с его дочерними узлами)

  //к узлу высшего уровня

  topNodeForUserData.AppendChild(subNodeForNameInfo);

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

  //Сохранить документ

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

  try {

   xmlDocument.Save(fileName);

  }

  catch (System.Exception ex) {

   System.Windows.Forms.MessageBox.Show("Ошибка при сохранении XML-документа - " + ex.Message);

  }

 } //Конец функции

} //Конец класса

Листинг 10.2. Вызов кода, предназначенного для сохранения и загрузки XML-документа

private void button1_Click{object sender, System.EventArgs e) {

 const string FILENAME = "TestFileName.XML";

 //Сохранить, используя XML DOM

95
{"b":"947732","o":1}