2009-07-27 12 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")); 
関連する問題