Программа создания и проведения тестов не записывает в XML файл - C#

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

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

Программа создания и проведения тестов. Сами тесты сохраняются в XML файле в следующем виде:
<тест>
     <название теста>
     <количество вопросов>
     <вопрос>
          <текст вопроса>
          <тип вопроса (один вариант ответа, несколько вариантов и т.д.)>
          <цена вопроса (количество получаемых баллов за ответ)>
          <количество вариантов ответа>
          <ответ>
               <текст ответа>
               <правильность ответа (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 файл, который находится в папке Debug проекта. Изменений в файле нет.

Решение задачи: «Программа создания и проведения тестов не записывает в XML файл»

textual
Листинг программы
doc.DocumentElement.AppendChild(TestNode);

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


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

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

11   голосов , оценка 4.455 из 5
Похожие ответы