Esto debería hacer el truco para usted:
for (int i = nodeList.Count - 1; i >= 0; i--)
{
nodeList[i].ParentNode.RemoveChild(nodeList[i]);
}
Si bucle que utiliza un cliente habitual, y el bucle for-loop sobre ella "hacia atrás" se puede eliminar elementos a medida que avanza.
Actualización: aquí es un ejemplo completo, incluyendo la carga de un archivo XML, la localización de los nodos, de borrarlos y guardando el archivo:
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);
¿Cuál es el problema con eso? –