2009-07-27 45 views
1

我需要在xml文档中删除一个范围的节点,直到某个数字。做这件事最有效的方法是什么?我目前正在迭代节点,并一次删除它们:在xml文档中删除节点范围

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")); 
} 

回答

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"));