我写信并从C#WinFroms级别读取xml文件。另外,我希望有一个函数来删除给定内容的元素。 我的xml格式:
<libraryImages>
<imageLink>*link1*</imageLink>
<imageLink>*link2*</imageLink>
</libraryImages>
功能体:
System.Xml.Linq.XDocument xdoc = System.Xml.Linq.XDocument.Load("XmlData.xml");
xdoc.Root.Elements("imageLink").Select(el => el).Where(el => el.Value == pathToRemove).ToList().ForEach(el => el.Remove());
作为一条路径去除&#39;参数我传递 link1 。 问题是 - 这不会从xml中删除这个元素 - 因此在我重新启动我的应用程序后,我的库的内容就像以前一样,好像我没有删除任何项目。 为什么这不起作用?虽然我一无所获,但我浏览了很多stackoverflow问题。
答案 0 :(得分:2)
您应该在内存操作后更新xml文件:
// read file from disc and build in-memory representation of xml
var xdoc = XDocument.Load("XmlData.xml");
// modify in-memory representation
xdoc.Root.Elements("imageLink").Where(el => el.Value == pathToRemove).Remove();
// save modified representation back to disck
xdoc.Save("XmlData.xml");