删除xml文档中的节点范围

时间:2009-07-27 14:30:57

标签: c# 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 个答案:

答案 0 :(得分: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"));