【问题标题】:Updating XML file with LINQ使用 LINQ 更新 XML 文件
【发布时间】:2014-03-07 21:43:42
【问题描述】:

我正在尝试使用 linq 更新现有的 XML 文件。这是我的代码;

string myPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\mySettings.xml";
XDocument cashierSettings = XDocument.Load(settingsPath);
var updateSettings = from c in cashierSettings.Elements("Settings")
     select c;
foreach (XElement x in updateSettings)
{
     x.Element("Setting1").SetValue("Hope this works");
}
cashierSettings.Save(settingsPath);

没有给出错误只是不确定我做错了什么。

【问题讨论】:

  • 如果调试,updateSettings.Count()的值是多少?更简单的方法可能是使用Descendants()
  • 我的猜测 cashierSettings.Elements("Settings") 返回空。也许cashierSettings.Root.Elements("Settings")

标签: c# xml wpf linq


【解决方案1】:

有根据的猜测:您正在从settingsPath 加载XDocument 而不是myPath

您可能正在更新settingPath 的任何文件,但您希望更新myPath

【讨论】:

    【解决方案2】:

    您没有向我们展示您的 XML 结构,但我认为您需要 Descandants 可能 SettingsRoot 的子元素或其他东西的子元素,因此 updateSetting 变为空。

    var updateSettings = from c in cashierSettings.Descendants("Settings")
                         select c;
    

    【讨论】:

      猜你喜欢
      • 2012-01-02
      • 1970-01-01
      • 1970-01-01
      • 2010-12-02
      • 1970-01-01
      • 2012-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多