c# - 如何从 XmlNodeList 中删除 XmlNode

标签 c# xml

我需要根据条件删除 XmlNode。怎么做?

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

}

最佳答案

这应该可以解决问题:

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

如果您使用常规的 for 循环循环,并“向后”循环,您可以随时删除项目。

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

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);

关于c# - 如何从 XmlNodeList 中删除 XmlNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/875136/

相关文章:

java - TextView 不在应用程序中居中,但在 match_constraint 中居中

c# - 如何判断 SqlConnection 是否附加了 SqlDataReader?

c# - 在运行时定位 Windows 窗体上的 ErrorProvider

C# 无法链接 LinkedList 中的节点

Android - 使用 JSON 文件中的颜色的最佳方式

java - 使用 SAX 解析器,如何解析具有相同名称标签但包含不同元素的 xml 文件?

javascript - AJAX 响应 : sugestions for JSON format?

java - 折叠工具栏不会随着抽屉布局而折叠

c# - ADO.Net - 为什么插入没有发生?

c#拆分数组并在文本框中按降序显示