Ошибка считывания из 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();
}