Программа создания и проведения тестов не записывает в XML файл - C#
Формулировка задачи:
Программа создания и проведения тестов. Сами тесты сохраняются в XML файле в следующем виде:
и т. д.
в ходе выполнения программы в режиме создания теста происходит ввод вопросов, ответов и других параметров. При выборе действия "Сохранить тест", программа выполняет следующие процедуры:
После выполнения этих действий проверяю XML файл, который находится в папке Debug проекта. Изменений в файле нет.
<тест>
<название теста>
<количество вопросов>
<вопрос>
<текст вопроса>
<тип вопроса (один вариант ответа, несколько вариантов и т.д.)>
<цена вопроса (количество получаемых баллов за ответ)>
<количество вариантов ответа>
<ответ>
<текст ответа>
<правильность ответа (0 или 1)>
private void button4_Click(object sender, EventArgs e)
{
XmlDocument doc = new XmlDocument();
doc.Load("tests.xml");
tst = new Test(textBox1.Text, qst); /*1-й параметр - имя теста, 2-й параметр - List с объектами типа Quest (класс вопроса)*/
if (tst.Check() == false) MessageBox.Show("Ошибка структуры теста"); /*Check - метод проверки теста на ошибки*/
else WriteToXML(doc);
}
public void WriteToXML(XmlDocument doc)
{
XmlNodeList nodeList = doc.DocumentElement.ChildNodes;
XmlNode TestNode = doc.CreateElement("test");
XmlNode NameNode = doc.CreateElement("name");
NameNode.InnerText = tst.test_name;
TestNode.AppendChild(NameNode);
XmlNode quest_quoteNode = doc.CreateElement("quest_quote");
quest_quoteNode.InnerText = Convert.ToString(qst.Count);
TestNode.AppendChild(quest_quoteNode);
XmlNode questionNode = doc.CreateElement("question");
TestNode.AppendChild(questionNode);
for (int i = 0; i < qst.Count; i++) /*цикл на количество вопросов*/
{
XmlNode questNode = doc.CreateElement("quest");
questNode.InnerText = qst[i].quest_name;
questionNode.AppendChild(questNode);
XmlNode typeNode = doc.CreateElement("type");
typeNode.InnerText = qst[i].type.ToString();
questionNode.AppendChild(typeNode);
XmlNode priceNode = doc.CreateElement("price");
priceNode.InnerText = qst[i].price.ToString();
questionNode.AppendChild(priceNode);
XmlNode var_quoteNode = doc.CreateElement("var_quote");
var_quoteNode.InnerText = qst[i].vars.Count.ToString();
questionNode.AppendChild(var_quoteNode);
XmlNode answerNode = doc.CreateElement("answer");
questionNode.AppendChild(answerNode);
for (int j = 0; j < qst[i].vars.Count; j++) /*цикл на количество ответов в выбранном вопросе*/
{
XmlNode textNode = doc.CreateElement("text");
textNode.InnerText = qst[i].vars[j].text;
answerNode.AppendChild(textNode);
XmlNode rightNode = doc.CreateElement("right");
rightNode.InnerText = qst[i].vars[j].right.ToString();
answerNode.AppendChild(rightNode);
}
}
doc.Save("tests.xml");
}Решение задачи: «Программа создания и проведения тестов не записывает в XML файл»
textual
Листинг программы
doc.DocumentElement.AppendChild(TestNode);