【发布时间】:2015-11-03 01:27:50
【问题描述】:
我正在尝试构建一个自动测试评分应用程序,我希望最终结果是一个 savefiledialog 提示,允许评分者将新的 xml 文件保存到任何位置。
诀窍是我需要输出 xml 来包含原始测试 + 来自答案键的附加答案 + 最终成绩。这是我到目前为止所拥有的,但我遇到了一个错误。我对 .appendchild() 不熟悉,所以我认为这就是我的问题所在。
private void cbOutput_Click(object sender, EventArgs e)
{
XmlNode rootTest = xmlAnswers.DocumentElement;
XmlNode rootKey = xmlAnswerKey.DocumentElement;
XmlNodeList nodeListTest = rootTest.SelectNodes("//answer");
foreach (XmlNode item in nodeListTest)
{
XmlNode importNode = rootTest.OwnerDocument.ImportNode(rootKey, true);
item.AppendChild(importNode);
}
SaveFileDialog savefiledialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "XML Files|*.XML";
saveFileDialog1.Title = "Choose Location to Save Graded Test";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
if (!string.IsNullOrEmpty(savefiledialog1.FileName))
using (Stream s = File.Open(savefiledialog1.FileName, FileMode.Create))
using (StreamWriter sw = new StreamWriter(s))
{
sw.Write(rootTest + tbTotal.Text);
}
}
【问题讨论】:
-
这有助于克服该错误。现在,当我运行并通过测试时,我没有得到任何输出,这意味着文件不会保存在任何地方。我已经更新了上面的代码
标签: c# xml forms visual-studio