【问题标题】:C#: delete an element from xmlC#:从 xml 中删除一个元素
【发布时间】:2017-04-14 15:01:20
【问题描述】:

我从 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());

例如,作为 'pathToRemove' 参数,我通过 link1。 问题是 - 这不会从 xml 中删除此元素 - 因此在我重新启动应用程序后,我的库的内容与以前一样,就好像我没有删除任何项目一样。 为什么这不起作用?我浏览了许多 stackoverflow 问题,但一无所获。

【问题讨论】:

    标签: c# xml linq linq-to-xml


    【解决方案1】:

    您应该在内存中操作后更新 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");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-20
      • 2015-02-21
      相关资源
      最近更新 更多