asp.net批量删除XML节点失败的原因及解决办法
今天操作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节点失败的原因及解决办法的更多相关文章
- 整理 node-sass 安装失败的原因及解决办法
npm install 时偶尔遇到报错:没有安装python或node-sass 安装失败的问题,百度之后发现是被墙了,但根据百度的方法换了淘宝镜像和用了vpn都安装失败,最后发现原来是因为没有卸载之 ...
- 整理Mac系统 node-sass 安装失败的原因及解决办法
转载与:https://segmentfault.com/a/1190000010984731 声明:本文非原创,如有侵权请留言或发邮件告知,作者会立即停止侵权并删除本文.发布此文章主要是希望跟作者遇 ...
- WinCE启动失败的原因与解决办法分析
本文通过一个真实的嵌入式项目进行说明.文中的嵌入式系统用的是ARM处理器+WinCE平台,项目的目的是要把WinCE平台从旧版本移植到WinCE6.0平台上.但结果是这个WinCE系统在启动的时候经常 ...
- Ajax请求文件下载操作失败的原因和解决办法
使用Poi做excel表格导出功能,第一个想到的就是用Ajax来发送请求,但是Ajax和后台代码都执行了,就是无法下载文件. 前台代码 function exportExl(){ var form = ...
- NoClassDefFoundError: javax/xml/bind/DatatypeConverter错误原因以及解决办法
nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter 报错内容: org.sprin ...
- 用adb pull命令从android系统中读取文件失败的原因及解决办法
问题:使用adb pull命令从android系统中读取文件失败.显示:Permission denied 原因:是由于文件权限原因引起. 使用ls -l命令查看android系统中的 ...
- (转)整理 node-sass 安装失败的原因及解决办法
转载地址:https://segmentfault.com/a/1190000010984731
- node-sass 安装失败的原因及解决办法
出处:https://segmentfault.com/a/1190000010984731 windows 上用 yarn add node-sass --dev 也可以安装上.
- C# 添加,修改,删除Xml节点 摘录
C# 添加,修改,删除Xml节点 //添加xml节点 private void AddXml(string image, string title) { XmlDocume ...
随机推荐
- Float Equal Problem
Understand limitations of floating point representations.Never check for equality with ==. Instead, ...
- 【BZOJ】3781: 小B的询问(莫队算法)
http://www.lydsy.com/JudgeOnline/problem.php?id=3781 还能不能再裸点.. #include <cstdio> #include < ...
- 本函数用来改变目前 php 执行的目录到新的 directory 目录中
chdir : 改变目录. dir : 目录类别类. closedir : 关闭目录 handle. opendir : 打开目录 handle. readdir : 读取目录 handle. rew ...
- Apache Spark源码走读之1 -- Spark论文阅读笔记
欢迎转载,转载请注明出处,徽沪一郎. 楔子 源码阅读是一件非常容易的事,也是一件非常难的事.容易的是代码就在那里,一打开就可以看到.难的是要通过代码明白作者当初为什么要这样设计,设计之初要解决的主要问 ...
- Open vSwitch使用案例扩展实验
参考:Open vSwitch使用案例扩展实验 实验目的: 通过python脚本调用OpenvSwitch命令: 学习Mininet基于python脚本创建拓扑的实现: 进一步深度使用"ov ...
- PHP OO 编程笔记
1. 类中的方法不是全局方法,可以和外部的普通方法重名,例如: <?php function time(); 则会报错:不能重新声明方法 Fatal error: Cannot redeclar ...
- 使用 PHP 限制下载速度
使用 PHP 限制下载速度 [来源] 达内 [编辑] 达内 [时间]2012-12-12 经常遇到一个问题,那就是有人再办公室下载东西,影响大家上网.办公.同样的问题,要是出现在了服务器上面 ...
- ActionResult,PartialViewResult,EmptyResult,ContentResult
HttpGet HttpPost HttpDelete HttpPut HeepHead HttpOptions HttpPatch属性都是动作方法选定器的一份子,比如若在action上套用H ...
- 性能测试工具JMeter
JMeter介绍 Apache JMeter是Apache组织的开放源代码项目,具有极高的可扩展性,是一个100%纯Java桌面应用,用于压力/性能测试.JMeter可以用于测试静态或者动态资 ...
- nginx高并发优化
一、一般来说nginx 配置文件中对优化比较有作用的为以下几项: 1. worker_processes 8; nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 (如,2个四核的cpu ...