2009-07-27 9 views
1

Ich muss eine Reihe von Knoten, bis zu einer bestimmten Anzahl, in einem XML-Dokument löschen. Was ist der effizienteste Weg, dies zu tun? Ich bin zur Zeit Iterieren über die Knoten und sie ein zu Zeit zu löschen:Lösche Knotenbereich in XML-Dokument

int trimFeeds = 20; 

XmlDocument xmlDoc = new XmlDocument(); 
xmlDoc.Load(MapPath("rss.xml")); 

XmlNodeList nodeList = xmlDoc.SelectNodes("rss/channel/item"); 

if (nodeList.Count > trimFeeds) 
{ 
    int i = 0; 
    foreach (XmlNode node in nodeList) 
    { 
     if (i++ >= trimFeeds) 
      node.ParentNode.RemoveChild(node); 
    } 

    xmlDoc.Save(MapPath("rss.xml")); 
} 

Antwort

1
int trimFeeds = 20; 

XmlDocument xmlDoc = new XmlDocument(); 
xmlDoc.Load(MapPath("rss.xml")); 

XmlNodeList nodeList = xmlDoc.SelectNodes(string.Format("rss/channel/item[position() > {0}]", trimFeeds)); 

foreach (XmlNode node in nodeList) 
{ 
    node.ParentNode.RemoveChild(node); 
} 
xmlDoc .Save(MapPath("rss.xml"));