C# 使用C从XML文件中删除项#

C# 使用C从XML文件中删除项#,c#,xml,C#,Xml,我正在尝试写入和删除存储在XML文件中的项目(类别)。我已经知道如何使用new-XElement和doc.Root.add添加,但我不知道如何删除和输入标题相同的项 XML: 我希望从文档中删除与字符串标题匹配的项。现在什么都没有发生,XmlNode似乎返回null。建议使用XDocument,因为它是用于解析XML的较新类。对于这样的类,使用这样的代码就足够了: var title = "Horror"; var xml = XDocument.Load(@"path to XML"); x

我正在尝试写入和删除存储在XML文件中的项目(类别)。我已经知道如何使用new-XElement和doc.Root.add添加,但我不知道如何删除和输入标题相同的项

XML:


我希望从文档中删除与字符串标题匹配的项。现在什么都没有发生,XmlNode似乎返回null。

建议使用
XDocument
,因为它是用于解析XML的较新类。对于这样的类,使用这样的代码就足够了:

var title = "Horror";
var xml = XDocument.Load(@"path to XML");

xml.Root.Elements("category").Where(e => e.Attribute("title").Value == title).Remove();

xml.Save(@"path to output XML");
$“/categories/categories[@name='{title}']”
中搜索属性
@name
,而XML中的属性名为
title
。尝试使用
$”/categories/category[@title='{title}']”
public static void RemoveFromCategoryXMLFile(string title)
{
    XmlDocument doc = new XmlDocument();
    doc.Load("../../DAL/XML_Categories/Categories.xml");

    XmlNode node = doc.SelectSingleNode($"/categories/category[@name='{title}']");

    if (node != null)
    {
        XmlNode parent = node.ParentNode;
        parent.RemoveChild(node);
        doc.Save("../../DAL/XML_Categories/Categories.xml");
    }
}
var title = "Horror";
var xml = XDocument.Load(@"path to XML");

xml.Root.Elements("category").Where(e => e.Attribute("title").Value == title).Remove();

xml.Save(@"path to output XML");