Jes*_*ess 5 c# xml web-services xmltextreader
我是一名初学程序员,从C#和Web服务开始.
在Service.cs我的Web服务文件中,我创建了一个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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的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>
Run Code Online (Sandbox Code Playgroud)
您可能在 while 循环中缺少 IsStartElement() 条件:
while (reader.Read())
{
if (reader.IsStartElement())
{
if (reader.Name == "id")
{
id = reader.ReadString();
}
...
}
Run Code Online (Sandbox Code Playgroud)
此外,使用XPath或LINQ to XML来读取 XML会更容易,当然这取决于文件。下面是一些示例:XPath和LINQ。
编辑:在看到 XML 文件详细信息后
您应该更新您的逻辑以跟踪当前student及其testscores. 另外,请注意这count是一个属性。它很快就会变得混乱,我建议您查看上面提到的示例。
| 归档时间: |
|
| 查看次数: |
45837 次 |
| 最近记录: |