【发布时间】:2014-03-19 21:50:19
【问题描述】:
我有这个 Xml 文件,我想编辑任何元素,例如 homepage 或 search_provider。
<?xml version="1.0" encoding="utf-8"?>
<Preferences>
<personal>
<homepage>http://duckduckgo.com</homepage>
<search_provider>DuckDuckGo</search_provider>
<search_provider_url>http://duckduckgo.com/?q=</search_provider_url>
</personal>
</Preferences>
以下是我用来尝试更改主页元素的 C# 代码。假设我运行saveSetting("homepage", "http://google.com");
public static void saveSetting(String settingName, String newvalue)
{
XmlDocument xml = new XmlDocument();
xml.Load(userSettingsFile);
foreach (XmlElement element in xml.SelectNodes("Preferences"))
{
foreach (XmlElement oldsettingname in element)
{
element.SelectSingleNode(settingName);
XmlNode settingtosave = xml.CreateElement(settingName);
settingtosave.InnerText = newvalue;
element.ReplaceChild(settingtosave, oldsettingname);
xml.Save(userSettingsFile);
}
}
}
现在,虽然这在一定程度上有效并且确实改变了指定的值,但它也删除了整个 personal 元素。
<?xml version="1.0" encoding="utf-8"?>
<Preferences>
<homepage>http://google.com</homepage>
</Preferences>
希望有人可以帮助我!过去两天我一直在寻找解决方案,这是我最接近让代码按照我需要的方式工作的方法。
【问题讨论】:
标签: c# xml settings edit updating