嵌套的 if 语句不起作用
本文关键字:不起作用 语句 if 嵌套 | 更新日期: 2023-09-27 18:31:17
我最近刚刚发布了关于试图让XMLTextReader工作的文章,我终于做到了。不幸的是,现在我无法让它从 XML 文件中获取数据,因为我的 if 语句做错了。我需要将这些 if 语句放在另一个 if 语句中,因为它们需要首先创建 Student 类。我不知道如何处理这个问题了。下面是我的代码,我确信这是愚蠢的。我不是很好的编码,所以我知道我缺少它的东西。
while (reader.Read())
{
reader.MoveToContent();
if (reader.NodeType == XmlNodeType.Element && reader.Name == "student")
{
Student s = new Student();
if (reader.Name == "id")
{
s.ID = reader.ReadString();
}
if (reader.Name == "firstname")
{
s.FirstName = reader.ReadString();
}
if (reader.Name == "lastname")
{
s.LastName = reader.ReadString();
}
if (reader.Name == "score")
{
s.TestScores.Add(Convert.ToInt32(reader.ReadString()));
}
s.Average = 6.00;
Students.Add(s);
}
}
[编辑] 即使在我告诉XMLreader继续下一行与阅读器之后。MoveToCOntent();它仍然跳过所有 if 语句。
我是编程的乞丐,我将不胜感激任何新的想法和建议。
为了使第一个if
语句为真,reader.Name
已经必须是"学生"。任何嵌套的if
检查reader.Name
的值是否为"学生"以外的任何值始终为假。
它仍然跳过所有 if 语句,只设置 Student 平均并将其添加到列表中
我想的第一件事是字符串上的相等失败,所以首先要尝试的是
if (reader.Name.Equals("id",StringComparison.InvariantCultureIgnoreCase))..
如果这不起作用,请尝试使用简单的XmlDocument
,看看它是否有效,如果没有,我会说您的代码中的其他内容是错误的,这在提供的代码中是不可见的。
可以在此处找到XmlDocument
的简单使用示例:
使用 XmlDocument 读取 XML 文件
除非您上传一些关于它为什么不起作用的错误,否则很难说。语法没有错。我会说在视觉工作室中查看调试错误以获取详细信息。 如果您不了解错误,请上传它,然后我们可以指导您。
我认为你应该尝试关闭阅读器。你的阅读器被打开了。在末尾写 reader.close()。