Ошибка считывания из xml файла - C#

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

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

при работе приложения возникает ошибка "Необработанное исключение типа "System.NullReferenceException" Дополнительные сведения: Ссылка на объект не указывает на экземпляр объекта"
private void List_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ListBox list = (ListBox)sender;
            Taask task =(Taask)list.SelectedItem;
            XDocument doc = XDocument.Load(@"XMLBAS.xml");
            foreach (var testElement in doc.Root.Elements())
            {
                if (testElement.Attribute("Name").Value == task.name && testElement.Attribute("Author").Value == task.author && testElement.Attribute("Qestions").Value == task.qestions)
                {
                    foreach (var questionElement in testElement.Elements()) //ошибка
                    {
                        task.answers.Add(questionElement.Attribute("ans").Value);
                        task.qestion.Add(questionElement.Attribute("qes").Value);
                    }
                }
            }
                    Window4 win = new Window4(task);
                    win.Show();
                    Close();

        }
<?xml version="1.0" encoding="utf-8" ?>
<tasks>
  
  <test Name="Электорнные таблицы" Author="Кирилл Скофенко" Qestions="9">
    <question ans="6" qes="Чему будет равно  значение ячейки С2?" />
    <question ans="180" qes="По данным электронной таблицы определите значение в ячейке  С3 после копирования  в нее формулы из ячейки С1"/>
    <question ans="F12" qes="Выберите верный адрес ячейки в электронной таблице:"/>
  </test>
  
  <test Name="123" Author="Кирилл Скофенко" Qestions="4"></test>
 
</tasks>

Решение задачи: «Ошибка считывания из xml файла»

textual
Листинг программы
private void List_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ListBox list = (ListBox)sender;
            Taask task =(Taask)list.SelectedItem;
            XDocument doc = XDocument.Load(@"XMLBAS.xml");
            if (task != null)
            {
                foreach (var testElement in doc.Root.Elements())
                {
                    if (testElement.Attribute("Name").Value == task.name && testElement.Attribute("Author").Value == task.author && testElement.Attribute("Qestions").Value == task.qestions)
                    {
                        foreach (var questionElement in testElement.Elements()) //ошибка
                        {
                            task.answers.Add(questionElement.Attribute("ans").Value);
                            task.qestion.Add(questionElement.Attribute("qes").Value);
                        }
                    }
                }
                Window4 win = new Window4(task);
                win.Show();
                Close();
            }

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


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

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

13   голосов , оценка 3.462 из 5