如何从XmlNodeList中删除XmlNode我需要根据条件删除XmlNode。怎么做?foreach(XmlNodedrawNodeinnodeList){//基于一个条件drawNode.RemoveAll();//需要删除整个节点}这应该可以为您解决问题:for(inti=nodeList.Count-1;i>=0;i--){nodeList[i].ParentNode.RemoveChild(nodeList[i]);如果您使用常规的for循环循环,并“向后”循环,您可以随时删除项目。更新:这是一个完整的示例,包括加载xml文件、定位节点、删除它们和保存文件:XmlDocumentdoc=newXmlDocument();doc.Load(文件名);XmlNodeListnodes=doc.SelectNodes("some-xpath-query");对于(inti=nodes.Count-1;i>=0;i--){nodes[i].ParentNode.RemoveChild(nodes[i]);}doc.Save(文件名);您不能轻松地使用迭代器(foreach语句)来删除节点。在我看来,您可以执行以下操作:1)在foreach循环中,保留应删除的所有元素的列表。然后你只需遍历元素并删除它们。2)使用普通的for循环并跟踪删除项目后要访问的下一个元素。编辑:使用for循环时,按照Fredrik建议的方式进行,向后循环。如果您试图从XMLDOM中删除节点,这不是正确的方法。因为XMLNodeList只是一个节点列表。相反,您想从其父节点中删除该节点。像这样:XmlNodeparentNode=//一些值XmlNodedrawNode=//一些值parentNode.ParentNode.RemoveChild(drawNode);下面是不是简单一点:以上就是C#学习教程:如何从XmlNodeList中删除所有XmlNode分享的内容,如果对大家有用,需要详细了解C#学习教程,希望大家多多付出注意——XmlDocumentdoc=newXmlDocument();doc.Load(文件名);XmlNodeListnodes=doc.SelectNodes("some-xpath-query");while(nodes.FirstChild!=null){nodes.RemoveChild(nodes.FirstChild);}doc.Save(文件名);XmlNodeListxnodeContact=xmldocContact.GetElementsByTagName("联系人");foreach(listViewContacts.Items中的ListViewItem项目){如果(item.Checked){如果(item.Index>=0)xnodeContact[0].ParentNode.RemoveChild(xnodeContact[0]);listViewContacts.Items.Remove(项目);}}}xmldocContact.Save(appdataPath+"\WhatAppcontactList.xml");无效();本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
