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

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

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

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

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

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

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


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

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

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