如何按属性删除XML节点

XML

               

此代码不会从xml中删除该节点。 你能帮我找问题吗?

 XmlDocument doc = new XmlDocument(); doc.Load(localXMLpath + xmlFileName); XmlNode delNode= doc.SelectSingleNode("/WorkTable/SpecialDays/Day[@date='24.07.2015']"); delNode.ParentNode.RemoveChild(delNode); doc.Save(localXMLpath + xmlFileName); 

您的代码工作正常,问题是您正在尝试覆盖您从中读取数据的文件。

看到这个答案C#:Xml.Load(文件)的close方法

这应该有效:

 XDocument xdoc = XDocument.Load(filename); xdoc.Element("WorkTable").Element("SpecialDays").Elements("Day") .Where(x => (string)x.Attribute("date") == "24.07.2015") .Remove(); xdoc.Save(filename);