当XML数据有多个节点时,使用c#检索XML文件数据

当XML数据有多个节点时,使用c#检索XML文件数据,c#,asp.net,xml,C#,Asp.net,Xml,嗯,我是C#编程新手,我需要一些帮助,我试图找到这个问题的答案,但没有找到我想要的。也许我搜索得不好,对不起 我有这种类型的xml文件: <ROW> <ID>1256464</ID> <TEST> <PROJECT1> <PROJECT1_ID>984461</PROJECT1_ID> </PROJECT1> <PROJECT2> <PROJECT2_ID>614115<

嗯,我是C#编程新手,我需要一些帮助,我试图找到这个问题的答案,但没有找到我想要的。也许我搜索得不好,对不起

我有这种类型的xml文件:

<ROW>
<ID>1256464</ID>
<TEST>
<PROJECT1>
<PROJECT1_ID>984461</PROJECT1_ID>
</PROJECT1>
<PROJECT2>
<PROJECT2_ID>614115</PROJECT2_ID>
</PROJECT2>
<PROJECT3>
<PROJECT3_ID>134998</PROJECT3_ID>
</PROJECT3>
</TEST>
<RESULTS>
<GRADE1>
<GRADE1_ID>6561616</GRADE1_ID>
</GRADE1>
<GRADE2>
<GRADE2_ID>6687979</GRADE2_ID>
</GRADE2>
<GRADE3>
<GRADE3_ID>13156665</GRADE3_ID>
</GRADE3>
</RESULTS>
</ROW>

我想指出,您编写的XML是无效的。标记实际上没有结束标记。(即,第二个标签缺少/-东西)


我想这是示例中的一个输入错误?否则,解析这个XML文件可能会非常痛苦。

XML看起来是错误的-我相信
将是正确的选择,否则,使用xmltextreader(以及dom)编写XML解析器显然是不可能的。你说的是精确节点名的属性是吗?如果是这样的话,它就不能完成,因为我得到的文件很大,而且文件的类型看起来就像我展示的那样。那么我应该使用什么类型的名称空间呢?我想他是说XML应该是这样的:。。。或者你是说你只是简单地以这种格式获取文件,并且必须继续它?是的,我以这种格式获取数据,我需要循环它。据我所知,节点的属性将是更容易的任务,但在我的情况下,我只得到了这种格式
    XmlTextReader reader = new XmlTextReader("items.xml");
    while (reader.Read())
    {
    XmlNodeType nodeType = reader.NodeType;
    if (nodeType == XmlNodeType.Element)
    {
    if (reader.NodeType == "ID")
    {
    //this node value i get to the console but others not, if them are in depth
    Console.WriteLine(reader.ReadString());
    }
    //tried to do this stuff i know it's wrong
    //but i cant get the value of this elment how should i loop through
    //and of course i need to reach grade1_id fields and loop through
    if (reader.NodeType == "PROJECT2_ID")
    {
    Console.WriteLine(reader.ReadString());
    }
    }
    }