当XML数据具有多个节点时,使用c#检索XML文件数据
本文关键字:XML 数据 使用 文件 检索 节点 | 更新日期: 2023-09-27 17:58:59
我是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>
有很多行,文件很大。所以我应该使用XmlTextReader函数。至少我写了一个小代码:
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());
}
}
}
我想指出您编写的XML是无效的。标签<等级_某物_ ID>实际上没有结束标记。(即第二个标签缺少/-thingy)
我想这是例子中的错别字吧?否则,解析这个XML文件可能会非常痛苦。