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

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

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

при работе приложения возникает ошибка "Необработанное исключение типа "System.NullReferenceException" Дополнительные сведения: Ссылка на объект не указывает на экземпляр объекта"
Листинг программы
  1. private void List_SelectionChanged(object sender, SelectionChangedEventArgs e)
  2. {
  3. ListBox list = (ListBox)sender;
  4. Taask task =(Taask)list.SelectedItem;
  5. XDocument doc = XDocument.Load(@"XMLBAS.xml");
  6. foreach (var testElement in doc.Root.Elements())
  7. {
  8. if (testElement.Attribute("Name").Value == task.name && testElement.Attribute("Author").Value == task.author && testElement.Attribute("Qestions").Value == task.qestions)
  9. {
  10. foreach (var questionElement in testElement.Elements()) //ошибка
  11. {
  12. task.answers.Add(questionElement.Attribute("ans").Value);
  13. task.qestion.Add(questionElement.Attribute("qes").Value);
  14. }
  15. }
  16. }
  17. Window4 win = new Window4(task);
  18. win.Show();
  19. Close();
  20.  
  21. }
Листинг программы
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <tasks>
  3. <test Name="Электорнные таблицы" Author="Кирилл Скофенко" Qestions="9">
  4. <question ans="6" qes="Чему будет равно значение ячейки С2?" />
  5. <question ans="180" qes="По данным электронной таблицы определите значение в ячейке С3 после копирования в нее формулы из ячейки С1"/>
  6. <question ans="F12" qes="Выберите верный адрес ячейки в электронной таблице:"/>
  7. </test>
  8. <test Name="123" Author="Кирилл Скофенко" Qestions="4"></test>
  9. </tasks>

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

textual
Листинг программы
  1. private void List_SelectionChanged(object sender, SelectionChangedEventArgs e)
  2.         {
  3.             ListBox list = (ListBox)sender;
  4.             Taask task =(Taask)list.SelectedItem;
  5.             XDocument doc = XDocument.Load(@"XMLBAS.xml");
  6.             if (task != null)
  7.             {
  8.                 foreach (var testElement in doc.Root.Elements())
  9.                 {
  10.                     if (testElement.Attribute("Name").Value == task.name && testElement.Attribute("Author").Value == task.author && testElement.Attribute("Qestions").Value == task.qestions)
  11.                     {
  12.                         foreach (var questionElement in testElement.Elements()) //ошибка
  13.                         {
  14.                             task.answers.Add(questionElement.Attribute("ans").Value);
  15.                             task.qestion.Add(questionElement.Attribute("qes").Value);
  16.                         }
  17.                     }
  18.                 }
  19.                 Window4 win = new Window4(task);
  20.                 win.Show();
  21.                 Close();
  22.             }

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


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

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

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

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

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

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