【发布时间】:2020-05-11 12:32:15
【问题描述】:
我只是在创建一个将设置存储在 xml 文件中的应用程序。 如果我现在要保存一个新参数,我需要检查该参数是否已经存在并更新它或将其添加到文档中。
其实我是这样解决的:
XDocument xDocument = XDocument.Load(appDataFolder + @"\settings.xml");
foreach(XElement xElement in xDocument.Descendants("Settings"))
{
if(xElement.Element("projectFile") != null)
xElement.Element("projectFile").Value = projectFile;
else
xElement.Add(new XElement("projectFolder", projectFile));
if (xElement.Element("projectFolder") != null)
xElement.Element("projectFolder").Value = projectFolder;
else
xElement.Add(new XElement("projectFolder", Environment.GetFolderPath(Environment.SpecialFolder.CommonDocuments)));
}
xDocument.Save(appDataFolder + @"\settings.xml");
这是实际的settings.xml:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!--System-Settings-->
<Settings version="1.0.0.0">
<projectFile>C:\Users\Public\Documents\project.prj</projectFile>
<projectFolder>C:\Users\Public\Documents</projectFolder>
</Settings>
如果元素不存在,是否有更方便的方式自动添加元素?
【问题讨论】:
-
这不是您问题的答案,但也许您应该考虑使用XmlConfigurationProvider 来存储您的应用设置?使用起来比手动读取 XML 文件更方便。
-
谢谢您的建议。当然这是一种可能的方式,但我也需要与该应用程序中的其他工作的 xml 文件进行交互,因此也为此,获得我的问题的答案很有用。