嵌套的 if 语句不起作用



我最近刚刚发布了关于试图让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()。

最新更新