当XML数据有多个节点时,使用c#检索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<
<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());
}
}
}