Сохранение xml после n нажатий кнопки - C#
Формулировка задачи:
есть код, который сохраняет xml документ с данными, но необходимо произвести сохранение после n нажатий на кнопку, т.е. сначала заполнить xml данными, а затем его сохранить, а лучше вывести кнопку сохранения отдельно
private void button3_Click(object sender, EventArgs e)
{
SaveFileDialog saveDlg = new SaveFileDialog();
saveDlg.FileName = "Вопросы";
saveDlg.DefaultExt = "xml";
saveDlg.Filter = "Файлы XML (*.xml)|*.xml";
if (saveDlg.ShowDialog() != DialogResult.OK)
return;
XmlTextWriter writer = null;
try
{
writer = new XmlTextWriter(saveDlg.FileName, System.Text.Encoding.Unicode);
writer.WriteStartDocument();
writer.WriteStartElement("Вопросы");
writer.WriteStartElement("Вопрос"+nom_vop);
writer.WriteAttributeString("question", textBox1.Text.ToString());
writer.WriteStartElement("correct_answer");
writer.WriteAttributeString("answer", textBox2.Text.ToString());
writer.WriteStartElement("wrong_answer1");
writer.WriteAttributeString("answer", textBox3.Text.ToString());
writer.WriteStartElement("wrong_answer1");
writer.WriteAttributeString("answer", textBox4.Text.ToString());
writer.WriteStartElement("wrong_answer1");
writer.WriteAttributeString("answer", textBox5.Text.ToString());
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndDocument();
nom_vop++;
}
catch (Exception ex)
{
MessageBox.Show("Ошибка: " + ex.Message);
}
finally
{
if (writer != null)
writer.Close();
}
}
в результате получается такое содержание, а надо что бы <Вопрос1 question=""> было больше
<Вопросы> <Вопрос1 question="йцукенгшщ"> <correct_answer answer="щшшш"/> <wrong_answer1 answer="ььь"/> <wrong_answer2 answer="ююю"/> <wrong_answer3 answer="иии"/> </Вопрос1> </Вопросы>
Решение задачи: «Сохранение xml после n нажатий кнопки»
textual
Листинг программы
[XmlType]
public class Question
{
public int Level {get;set;} //уровень сложности
public string Text {get;set;} //Сам вопрос
public string Answer {get;set;} //Ответ на него
public readonly string[] InvalidAnswers = new string[3]; // Всякие доп. путающие ответы
}