Требуются пояснения по работе с XML - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Я пытаюсь научиться работать с XML, в частности сохранять данные в файл и читать из него. Сделал класс с несколькими свойствами:
Листинг программы
  1. public class Buyer
  2. {
  3. public int ID { get; set; }
  4. public string Name { get; set; }
  5. public Races Race { get; set; }
  6. public Specialties Specialty { get; set; }
  7. public byte AttitudeTowardsYou { get; set; }
  8. }
Создал переменную класса и записываю её в файл следующим образом:
Листинг программы
  1. XmlTextWriter textWritter = new XmlTextWriter("TestFile.xml", Encoding.UTF8);
  2. textWritter.WriteStartDocument();
  3. textWritter.WriteStartElement("head");
  4. textWritter.WriteEndElement();
  5. textWritter.Close();
  6. XmlDocument documentBuyer = new XmlDocument();
  7. documentBuyer.Load("TestFile.xml");
  8. XmlNode elementBuyer = documentBuyer.CreateElement("Buyer");
  9. documentBuyer.DocumentElement.AppendChild(elementBuyer); // указываем родителя
  10. XmlAttribute attribute = documentBuyer.CreateAttribute("ID"); // создаём атрибут
  11. attribute.Value = buyer.ID.ToString(); // устанавливаем значение атрибута
  12. elementBuyer.Attributes.Append(attribute); // добавляем атрибут
  13. //Ну и так далее для всех значений
  14. //...
  15. documentBuyer.Save("TestFile.xml");
В результате получается вот такой документ:
Листинг программы
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <head>
  3. <Buyer ID="38" Name="Test number 39" Race="2" Specialty="1" AttitudeTowardsYou="50" />
  4. </head>
Теперь я пытаюсь из него что-то считать:
Листинг программы
  1. XDocument xDocument = XDocument.Load("TestFile.xml");
  2. string s = xDocument.Element("Buyer").Attribute("ID").Value;
  3. MessageBox.Show(s);
И получаю ошибку "Ссылка на объект не указывает на экземпляр объекта." во второй строке. Я думал, что обратился к элементу Buyer и пытаюсь вытащить из него ID, разве нет? Ну и так же мне интересно, а правильно ли я вообще пишу данные в файл или это принято делать как-то по другому.

Решение задачи: «Требуются пояснения по работе с XML»

textual
Листинг программы
  1. string s = xDocument.Root.Element("Buyer").Attribute("ID").Value;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут