gpt4 book ai didi

c# - 使用 XmlTextReader

转载 作者:数据小太阳 更新时间:2023-10-29 01:56:41 25 4
gpt4 key购买 nike

我是一名初级程序员,从 C# 和 Web 服务开始。

在我的网络服务的 Service.cs 文件中,我创建了一个 ReadXMLFile() 方法,我试图在其中读取现有的 XML 文件,从中获取数据它并将其放置到我在 IService.cs 文件中创建的相应属性 (DataMembers)。

我的问题是我的代码基本上什么也没做。我试过寻找这方面的网站和教程,但实际上并没有太多,尤其是对于像我这样的初学者。任何人都知道我应该怎么做,因为到目前为止我一直在尝试的显然是错误的。

下面是我的 ReadXMLFile() 方法。

void ReadXMLFile()
{
XmlTextReader reader = new XmlTextReader("ClassRoll.xml");
reader.Read();
while (reader.Read())
{
if (reader.Name == "id")
{
id = reader.ReadString();
}
else if (reader.Name == "firstname")
{
link = reader.ReadString();
}
else if (reader.Name == "lastname")
{
description = reader.ReadString();
}
else if (reader.Name == "count")
{
description = reader.ReadString();
}
else if (reader.Name == "testscore")
{
description = reader.ReadString();
}
}
}

这是我的 xml 文件的示例

<classroll>
<student>
<id>101010</id>
<lastname>Smith</lastname>
<firstname>Joe</firstname>
<testscores count="5">
<score>65</score>
<score>77</score>
<score>67</score>
<score>64</score>
<score>80</score>
</testscores>
</student>
</classroll>

最佳答案

您的 while 循环中可能缺少 IsStartElement() 条件:

while (reader.Read())
{
if (reader.IsStartElement())
{
if (reader.Name == "id")
{
id = reader.ReadString();
}
...
}

此外,使用 XPath 会更容易或 LINQ to XML读取您的 XML,当然这取决于文件。以下是一些示例:XPathLINQ .

编辑:查看 XML 文件详细信息后

您应该更新您的逻辑以跟踪当前的学生 及其测试分数。另外,请注意 count 是一个属性。它很快就会变得困惑,我建议你看看上面提到的示例。

关于c# - 使用 XmlTextReader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10150785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com