C# 选择要删除的多个节点

C# 选择要删除的多个节点,c#,xml,C#,Xml,我已经想了好几个小时了,但是运气不好。我想问一下如何删除多个节点 当我只做一个节点时,我没有任何问题,但当我添加条件“或”时,或者如果它总是删除整个节点 希望有人能帮忙 以下是我迄今为止所做的工作: XML 值不能等于test123,同时也不能等于test125,因此该条件始终为true(最多一个子句可以是false-尝试test123,您将得到'test123'!='test123'| |'test123'!='test125'-第一个子句是false,但第二个子句是true,因此表达式的计算

我已经想了好几个小时了,但是运气不好。我想问一下如何删除多个节点

当我只做一个节点时,我没有任何问题,但当我添加条件“或”时,或者如果它总是删除整个节点

希望有人能帮忙

以下是我迄今为止所做的工作:

XML


值不能等于
test123
,同时也不能等于
test125
,因此该条件始终为
true
(最多一个子句可以是
false
-尝试
test123
,您将得到
'test123'!='test123'| |'test123'!='test125'
-第一个子句是
false
,但第二个子句是
true
,因此表达式的计算结果为
true
)。如果要删除值不是“test123”和“test125”的所有元素,则需要在LINQ to XML中使用
&&
|

var xDoc = XDocument.Load(@"D:\nodes.xml");
xDoc.Root.Elements("NodeLog")
    .Where(w => (string)w.Element("PName") == "test123" || (string)w.Element("PName") == "test125")
    .Remove();
xDoc.Save(@"D:\nodes.xml");

仅供参考,如果您只是在学习,那么您不应该使用
XmlDocument
。请阅读“LINQ到XML”。谢谢,先生。先生,我可以知道使用XmlDocument无法实现我所做的吗?好的,先生,我将阅读关于“LINQ到XML”的阅读.
XmlDocument
是老办法。不用麻烦学了。改学LINQ to XML。您好,先生,我可以知道这在framework 2.0上是否有效吗?我需要运行它framework v 2.0早安,乡绅。您在最初的问题中没有提到framework 2.0。
XmlDocument xdoc1 = new XmlDocument();
xdoc1.Load("D:\\nodes.xml");
foreach (XmlNode node in xdoc1.SelectNodes("ApplDetails/NodeLog"))
{

    if (node.SelectSingleNode("PName").InnerText != "test123"  || node.SelectSingleNode("PName").InnerText != "test125"   )
    {
        node.ParentNode.RemoveChild(node);
    }

}

xdoc1.Save("D:\\nodes.xml");
var xDoc = XDocument.Load(@"D:\nodes.xml");
xDoc.Root.Elements("NodeLog")
    .Where(w => (string)w.Element("PName") == "test123" || (string)w.Element("PName") == "test125")
    .Remove();
xDoc.Save(@"D:\nodes.xml");