C# 使用XmlDocument读取XML文件时出现问题
我试图在控制台应用程序中解析XML文件。代码外观的示例:C# 使用XmlDocument读取XML文件时出现问题,c#,xml,xmldocument,C#,Xml,Xmldocument,我试图在控制台应用程序中解析XML文件。代码外观的示例: xml_nl = xml_d.SelectNodes("/exchange/messages/message"); foreach (XmlNode xml_n in xml_nl) { XmlNodeList xml_ml = xml_n.SelectNodes("header"); int h = 0;
xml_nl = xml_d.SelectNodes("/exchange/messages/message");
foreach (XmlNode xml_n in xml_nl)
{
XmlNodeList xml_ml = xml_n.SelectNodes("header");
int h = 0;
foreach (XmlNode xml_mhn in xml_ml)
{
if (xml_mhn.ChildNodes.Item(h).Name == "reference")
{
switch (xml_mhn.ChildNodes.Item(h).Attributes["type"].Value)
{
case "CU":
senderRef = xml_mhn.ChildNodes.Item(h).ChildNodes.Item(0)["referencevalue"].InnerText.ToString();
break;
case "AAJ":
bulkRef = xml_mhn.ChildNodes.Item(h).ChildNodes.Item(0).InnerText.ToString();
break;
default:
break;
}
}
h++;
}
XML本身的一个例子是:
<?xml version="1.0" encoding="utf-8"?>
<exchange>
<exchangedetails>
<exchangeref>00073281985000</exchangeref>
<exident>1Q54A3</exident>
<exchangedate>2012-06-22</exchangedate>
<exchangetime>23:24:00</exchangetime>
</exchangedetails>
<messages>
<message id="1">
<header>
<reference type="DM">
<referencevalue>73500534821183387</referencevalue>
</reference>
<reference type="CU">
<referencevalue>28-0686668</referencevalue>
</reference>
<reference type="AAJ">
<referencevalue>28-0686668</referencevalue>
</reference>
<reference type="AQY">
<referencevalue>9024</referencevalue>
</reference>
</header>
</message>
</exchange>
00073281985000
1Q54A3
2012-06-22
23:24:00
73500534821183387
28-0686668
28-0686668
9024
我的问题是它不会在标记和它们的子节点之间循环,而是先取第一个,然后跳过其余的。我可能陷入了某种奇怪的思路,但我就是看不出在哪里P
任何帮助都会被欣然接受。您实际上并没有在引用中循环 你在做什么:
- 到达父节点
- 检查索引H处的子项
- 递增H
- 离开父节点
- 到达父节点
- 使用foreach循环子节点
- 检查foreach中的每个孩子
- 退出父节点