【发布时间】:2013-02-28 14:02:14
【问题描述】:
我的 XML 代码出现问题,它似乎没有保存,当我打印出来时,什么也没有发生。我不确定出了什么问题,因为在它加载到我的列表框之前,它会加载不正确。代码如下,我读取 XML 的目的是将值存储在列表中,然后获取选定的标签并将其添加到列表框中。
String workingDir = Directory.GetCurrentDirectory();
XmlTextReader textReader = new XmlTextReader(workingDir + @"\XML.xml");
textReader.Read();
XmlNodeType type;
while (textReader.Read())
{
textReader.MoveToElement();
type = textReader.NodeType;
if (type == XmlNodeType.Text)
{
if (textReader.Name == "Code")
{
textReader.Read();
code = textReader.Value;
Console.WriteLine(code);
}
if (textReader.Name == "Name")
{
textReader.Read();
name = textReader.Value;
Console.WriteLine(name);
}
if (textReader.Name == "Semester")
{
textReader.Read();
semester = textReader.Value;
Console.WriteLine(semester);
}
if (textReader.Name == "Prerequisite")
{
textReader.Read();
preReq = textReader.Value;
Console.WriteLine(code);
}
if (textReader.Name == "LectureSlot")
{
textReader.Read();
lSlot = textReader.Value;
Console.WriteLine(lSlot);
}
if (textReader.Name == "TutorialSlot")
{
textReader.Read();
tSlot = textReader.Value;
Console.WriteLine(tSlot);
}
if (textReader.Name == "Info")
{
textReader.Read();
info = textReader.Value;
module.Add(new modules(name, code, semester, tSlot, lSlot, info, preReq));
}
}
foreach (object o in module)
{
modules m = (modules)o;
String hold = m.mName;
selectionBox.Items.Add(hold);
}
}
【问题讨论】:
-
了解 textReader 是什么类型的对象会有所帮助。它显然不是 TextReader,但不清楚它是什么。
-
嗯,如果没有您输入的 XML 文件,这有点棘手。我建议在调试器中运行代码,看看哪里出了问题并了解原因。
-
我已经添加了我的 XML 文件的安装供您考虑
-
我强烈建议将您的示例压缩到相关的位。具体来说,您是否需要几乎相同的循环的这么多副本。 (我不知道它们是否重要,所以保持原样,因为这可能是格式问题)。