日期:2014-05-20  浏览次数:20661 次

想用linq to xml 修改App.config的节点值,求指点
C# code

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="lastid" value="5140"/>  </appSettings>
</configuration>


这是俺的配置文件,我想用linq to xml修改appSettings下lastid的value值 咋写呀 大虾们

------解决方案--------------------
直接用 ConfigurationManager 修改更简单
需要注意的是:Debug时,修改的是bin/debug下的 .vshost.exe.Config 文件而不是 *.exe.config 文件

C# code
var config = System.Configuration.    ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.None);
config.AppSettings.Settings.Remove("id");
config.AppSettings.Settings.Add("id", "test");
config.Save();
Console.WriteLine(config.AppSettings.Settings["id"].Value);

------解决方案--------------------
C# code

void Main()
{
    var xml=XElement.Load(@"c:\test.xml");
    var query=(from k in xml.Descendants("appSettings")
              where k.Element("add").Attribute("key").Value=="lastid"
              select k.Element("add")).SingleOrDefault();
         
    if(query !=null)
    {
      query.Attribute("value").Value="5555"; 
          xml.Save(@"c:\test.xml");
    }
    
     
}