C# 使用C从XML文件中删除项#
我正在尝试写入和删除存储在XML文件中的项目(类别)。我已经知道如何使用new-XElement和doc.Root.add添加,但我不知道如何删除和输入标题相同的项 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
我希望从文档中删除与字符串标题匹配的项。现在什么都没有发生,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");