首页 > Web开发 > 详细

asp.net批量删除XML节点失败的原因及解决办法

时间:2014-08-11 17:15:12      阅读:414      评论:0      收藏:0      [点我收藏+]

今天操作XML的时候,用到了批量循环删除节点.出现了问题,即循环未结束,程序就跳出循环。搞了好久才弄明白。

解决前的代码:

XmlNodeList items = xn.ChildNodes; //获取节点列表
//删除所有节点
for (int i = 0; i < items.Count; i++)
{
     XmlElement page = (XmlElement)items[0];
     xn.RemoveChild(page); 
}

因为每次循环,删除节点后,item.Count的值都会-1。

如果当前的item.Count是5,i=1,第一次循环Count(5)-1=4,则这个时候的i++就是2,第二次的时候Count(4)-1就是3,而i++后就是3,所以满足条件i<Count,于是退出循环。这样就造成了没有完全遍历XML文件的全部节点,所以会中途跳出循环。

当然你用foreach(XmlNode in item.Count)的办法也不行。

解决方案是:

int len = items.Count;  
 for (int i = 0; i < len; i++)
{
       XmlElement page = (XmlElement)items[0];
        xn.RemoveChild(page); 
}

  

asp.net批量删除XML节点失败的原因及解决办法,布布扣,bubuko.com

asp.net批量删除XML节点失败的原因及解决办法

原文:http://www.cnblogs.com/qk2014/p/3904858.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!