我需要在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"));
}
答案 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"));