我想获取xml文件中的所有元素.
我只获得了第一个元素.
XmlDocument XDoc = new XmlDocument();
XDoc.Load("d://avi.xml");
XmlNodeList XList = XDoc.SelectNodes("//level1");
foreach (XmlNode XNode in XList)
{
Console.WriteLine("the current node is - {0}", XNode.Name);
}
Run Code Online (Sandbox Code Playgroud)
xml:
<?xml version="1.0" encoding="utf-8"?>
<level1>
<level2>
<level3>header3</level3>
<level4>another</level4>
<level31>header31</level31>
</level2>
<level2>
<level3>nnn</level3>
<level31>nnnnn</level31>
</level2>
</level1>
<!--test test-->
Run Code Online (Sandbox Code Playgroud) 在下面的代码中,我使用foreach循环来检查nodelist中的每个节点并删除其中的一些节点.删除一个节点后,foreach循环抛出以下错误:"元素列表已更改.枚举操作无法继续".我怎么能避免呢?
public static XmlNodeList Scan(XmlNodeList nodeList)
{
string elementValue = null;
foreach (XmlNode xmlElement in nodeList)
{
elementValue = xmlElement.InnerText;
if (elementValue.Length >= 6 && elementValue.Substring(0, 3) == "999")
{
continue;
}
else
{
XmlNode node = xmlElement.ParentNode;
node.RemoveChild(xmlElement);
}
}
return nodeList;
}
Run Code Online (Sandbox Code Playgroud)