如何更改c#中XML文件的属性值?

问题描述:

我有一个XML文件(Web.config),我需要编辑每个标签的价值属性,取决于关键的名字......如何更改c#中XML文件的属性值?

这是XML文件的例子:

<appSettings> 
    <add key="A1" value="Hi" /> 
    <add key="B1" value="Hello" /> 
</appSettings> 

我的意思是,如何使用关键属性(A1 & B1)将值“hi”&“hello”更改?

非常感谢

+3

为什么你编程试图改变你的.config文件?也许你应该采取不同的方法。 – Kon 2011-05-29 11:58:52

试试这个代码,它工作正常:

XmlDocument doc = new XmlDocument(); 
doc.Load("Your.xml"); 
XmlNodeList elementList = doc.GetElementsByTagName("add"); 
for (int i = 0; i < elementList.Count; i++) 
{ 
    if(elementList[i].Attributes["key"].Value == "A1") 
     elementList[i].Attributes["value"].Value = "NewValue"; 
} 
+0

这段代码效率很低,因为它没有利用XML – 2011-05-31 03:02:43

,如果你只是想编辑应用程序配置文件 此功能可以帮助您

private static void SaveConfig(string KeyName, string value) 
    { 
     System.Configuration.ConfigurationManager.AppSettings[KeyName] = value; 
     System.Configuration.Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Windows.Forms.Application.ExecutablePath); 
     System.Configuration.AppSettingsSection ass = config.AppSettings; 
     if (ass.Settings[KeyName] != null) 
      ass.Settings[KeyName].Value = value; 
     else 
      ass.Settings.Add(KeyName, value); 
     config.Save(); 
    } 

通过调用saveconfig的(“key”,“newvalue”)你可以调整配置值

+0

中继承的任何数据信息,而不是使用System.Windows.Forms.Application.ExecutablePath youd shoud web.config url – DeveloperX 2011-05-29 12:03:21

+0

我认为这个问题是...我有2个不同的项目。该web.config文件是在一个项目中,我需要从另一个项目调用它...我使用配置类的问题之前,我可以很容易地处理web.config ...因为每个人都驻留在不同的班级,这对我来说更难。所以,我想以另一种方式来做。我认为XmlDocument可以帮助我以更好,更简单的方式...因此,我确实使用了它并使用了XmlDocument ... 谢谢你,请多多帮忙; – Q8Y 2011-05-30 05:59:23

+0

如果项目A和B都在同一个解决方案中,项目A是默认项目。但是项目B错误,因为它正在寻找web.config中不存在的值,因为只有项目A被复制到bin文件夹中,最简单的做法是从项目B中复制缺少的部分web.config文件导入到项目A中。虽然这更像是一种黑客攻击,但它起作用。 – 2011-05-31 03:06:47