0
我想通過一個XML節點及其childNode
環路。雖然這樣做,我試圖檢查如果dataList
包含childNode內部值,如果它不在列表中我刪除父節點形式的XML。但我面臨的問題是,在找到第一個條件之後,foreach
循環正在結束並且從頂部的for
循環開始統計。請在下面找到他的代碼:
更新List<XmlNode> deletenode = new List<XmlNode>();
問題與Foreach循環,一旦找到第一個條件出來循環
for (int i = 0; i < xmlNodeList.Count; i++)
{
deletenode = new List<XmlNode>();
foreach (XmlNode node in xmlNodeList[i].ChildNodes)
{
if (node.Name == "testNode")
{
XmlNode delNode = node;
if (node.ChildNodes[0].Name.ToString() == "nodeName")
{
string[] childNodesplit = node.ChildNodes[0].InnerText.Split(',');
if (!dataList.Any(e => e.Equals(childNodesplit[0].ToString())))
{
delNode = node.ChildNodes[0].ParentNode;
deletenode.Add(delNode);
}
}
}
}
foreach (XmlNode nd in deletenode)
{
if (nd.Name == "testNode")
{
ElemList[i].RemoveChild(nd);
}
}
}
任何人都可以點錯誤,我很foreach循環中這樣做,使迴路的匹配一個條件,它不會comeout。 我更新了我的代碼,但我無法將這些節點刪除。
UPDATE
我現在得到了解決方案,我錯過了將deletenode
列表作爲每個循環的新列表。
我把它們保存在一個單獨的'XmlNodeList'中。 – SDLBeginner
@SDLBeginner:你不必*,但這是可能的解決方案之一,是的。 – Tigran
我添加了我更新的代碼,但我無法刪除這些節點。 – SDLBeginner