如何删除的XmlNodeList一个XmlNode [英] How to remove an XmlNode from XmlNodeList

查看:191
本文介绍了如何删除的XmlNodeList一个XmlNode的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要删除基于条件的一个XmlNode。怎么办呢?

 的foreach(XmlNode的drawNode在节点列表)
{
       //基于一个条件
       drawNode.RemoveAll(); //需要删除整个节点}


解决方案

这应该做的伎俩为您提供:

 的for(int i = nodeList.Count  -  1; I> = 0;我 - )
{
    节点列表[I] .ParentNode.RemoveChild(节点列表[我]);
}

如果您使用循环定期for循环和循环了它倒退,你可以为你去删除项目。

更新:这里是一个完整的例子,包括加载XML文件,查找节点,删除它们并保存文件:

  XmlDocument的DOC =新的XmlDocument();
doc.Load(文件名);
XmlNodeList中的节点= doc.SelectNodes(一些-的XPath查询);
的for(int i = nodes.Count - 1; I> = 0;我 - )
{
    节点[I] .ParentNode.RemoveChild(节点[I]);
}
doc.Save(文件名);

I need to remove an XmlNode based on a condition. How to do it?

foreach (XmlNode drawNode in nodeList)
{
       //Based on a condition
       drawNode.RemoveAll();  //need to remove the entire node                      

}

解决方案

This should do the trick for you:

for (int i = nodeList.Count - 1; i >= 0; i--)
{
    nodeList[i].ParentNode.RemoveChild(nodeList[i]);
}

If you loop using a regular for-loop, and loop over it "backwards" you can remove items as you go.

Update: here is a full example, including loading an xml file, locating nodes, deleting them and saving the file:

XmlDocument doc = new XmlDocument();
doc.Load(fileName);
XmlNodeList nodes = doc.SelectNodes("some-xpath-query");
for (int i = nodes.Count - 1; i >= 0; i--)
{
    nodes[i].ParentNode.RemoveChild(nodes[i]);
}
doc.Save(fileName);

这篇关于如何删除的XmlNodeList一个XmlNode的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆