一次删除多个XML节点(RemoveChild())

前端之家收集整理的这篇文章主要介绍了一次删除多个XML节点(RemoveChild())前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

很好的一篇文章

原文地址:http://www.cnblogs.com/alexzp/archive/2012/10/23/2735715.html


1).(删除某一个指定的节点):

 1 nodelist = xmldoc.SelectSingleNode("employees").ChildNodes;            
 2             foreach (XmlNode xn in nodelist)
 3             {
 4                 //remove node by node's attribute
 5                 xmlele = (XmlElement)xn;
 6                 if (xmlele.GetAttribute(id") == 103")
 7                 {
 8                      xmln.RemoveChild(xn);                    
 9                 }                
10 
11                 remove node by node's name
12                 if (xn.Name == test13                 {
14                     xmln.RemoveChild(xn);                
15                 }
16 
17                 ////remove node by node's innertext
18                 if (xn.FirstChild.InnerText.ToString().Contains(a"))
19                 {
20                     xmln.RemoveChild(xn);
21                 }
22             }         

这样只能删除找到的第一个与if语句相同的节点(node).但是如果我们想一次删除多个node的话,这样的结果就不是我们想要的了。
RemoveChild()方法修改childnodes List,并且使foreach失效,所以你需要中止循环后的第一个Remove。删除多个node,你必须使用一个Outer Loop(Break 它,如果没有删除的循环),或向后扫描列表:

2). Outer Loop:

猜你在找的XML相关文章