码迷,mamicode.com
首页 > Web开发 > 详细

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

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

标签:des   blog   strong   文件   for   ar   问题   div   

今天操作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节点失败的原因及解决办法

标签:des   blog   strong   文件   for   ar   问题   div   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!