0

我最近刚刚发布了关于尝试让 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 用 reader.MoveToCONntent(); 移动到下一行之后 它仍然会跳过所有 if 语句。

我是编程的初学者,我将不胜感激任何新的想法和建议。

4

3 回答 3

2

为了使第一个if陈述为真,reader.Name必须是“学生”。任何嵌套if检查的值是否为reader.Name“student”以外的任何值都将始终为假。

于 2012-04-14T09:15:50.800 回答
1

它仍然跳过所有 if 语句,只是设置学生平均值并将其添加到列表中

我首先想到的是字符串上的相等性失败,所以首先要尝试的是

 if (reader.Name.Equals("id",StringComparison.InvariantCultureIgnoreCase))..

如果这也不起作用,请尝试使用 simpleXmlDocument并查看它是否有效,如果没有,我会说您的代码中的其他内容是错误的,这在提供的代码中是不可见的。

一个简单的使用示例XmlDocument可以在这里找到:

使用 XmlDocument 读取 XML 文件

于 2012-04-14T09:37:44.313 回答
0

除非你上传一些关于它为什么不工作的错误,否则很难说。语法没有错。我会说在 Visual Studio 中查看调试错误以获取详细信息。如果你不明白错误然后上传它听到之后我们可以指导你。

我认为你应该尝试关闭读者。您的阅读器已打开。最后写 reader.close() 。

于 2012-04-14T09:38:44.423 回答