How to remove an XmlNode from XmlNodeList

前端 未结 6 1528
耶瑟儿~
耶瑟儿~ 2020-12-06 04:09

I need to remove an XmlNode based on a condition. How to do it?

foreach (XmlNode drawNode in nodeList)
{
       //Based on a condition
       drawNode.Remove         


        
6条回答
  •  鱼传尺愫
    2020-12-06 04:59

    This should do the trick for you:

    for (int i = nodeList.Count - 1; i >= 0; i--)
    {
        nodeList[i].ParentNode.RemoveChild(nodeList[i]);
    }
    

    If you loop using a regular for-loop, and loop over it "backwards" you can remove items as you go.

    Update: here is a full example, including loading an xml file, locating nodes, deleting them and saving the file:

    XmlDocument doc = new XmlDocument();
    doc.Load(fileName);
    XmlNodeList nodes = doc.SelectNodes("some-xpath-query");
    for (int i = nodes.Count - 1; i >= 0; i--)
    {
        nodes[i].ParentNode.RemoveChild(nodes[i]);
    }
    doc.Save(fileName);
    

提交回复
热议问题