删除xml文件中的整个元素

本文关键字:元素 xml 文件 删除 | 更新日期: 2023-09-27 18:16:11

正如我在标题中所说:我想用c#删除xml文件中的整个元素,如果这个元素的属性值是先决条件。

XML文件:

<dependency>
<dependentAssembly dependencyType="preRequisite"></dependentAssembly>
</dependency>
<dependency>
<dependentAssembly dependencyType="install"></dependentAssembly>
</dependency>
当前代码:

using (XmlReader reader = XmlReader.Create(filePath))//filepath is just a normal Path
{
    while (reader.Read())
    {
        if (reader.Name == "dependentAssembly" && reader.GetAttribute("dependencyType") != "preRequisite")
        {
        //here shall it delete the Element "dependency"
        }
    }
}

在我设置命令的地方,它会删除元素"dependency"

我尝试了很多方法,但我不知道如何删除这个元素

删除xml文件中的整个元素

您可以使用LINQ to XML实现这一点:

var xml = XElement.Load(File.OpenRead(@"XmlLocation"));
var elementsToDelete =
    xml.Descendants("dependentAssembly")
       .Where(x => x.Attribute("dependencyType") != null && 
                   x.Attribute("dependencyType").Value != "preRequisite");
foreach (var xElement in elementsToDelete)
{
    xElement.Remove();
}
相关文章: