2010-11-23 6 views
1

это мой файл XML ...редактировать XML-файл с помощью C#

->

<!--Daily Genarated File Path--> 
<add key="DailyFilName" value="C:\DailySummary.xls"/> 
<!--Weekly Genarated File Path--> 
<add key="WeeklyFilName" value="C:\WeeklySummary.xls"/> 
<!--Log File Path--> 
<add key="LogFilName" value="c:\\TranmittalsLog.txt"/> 

Мне нужно изменить мое DailyFilName на C#. С помощью клавиши i нужно изменить значение.

+0

Это файл приложения.config? – Shekhar 2010-11-23 09:13:33

ответ

3

Ну в зависимости от типа файла есть несколько вариантов, которые вы можете использовать.

Если это стандартный XML-файл, то есть встроенные классы .NET, которые можно использовать, например, XmlReader, XmlWriter и XPathNavigator. Примеры, доступные в MSDN.

Если это файл app.config, вы можете использовать пространство имен Configuration для работы непосредственно с файлом без необходимости вручную читать/писать Xml. Ознакомьтесь с классом ConfigurationManager на MSDN для некоторых примеров.

1

[Примечание:. Если вы пытаетесь манипулировать AppSettings раздел в app.config или файле web.config, использование ConfigurationManager рекомендуется]

Вы можете сделать что-то вроде этого:

private void SetValue(String key, String value) 
    { 
     XDocument doc = XDocument.Load("..."); 
     XElement element = doc.Descendants("add").Where(d => d.Attribute("key") != null && d.Attribute("key").Value == key).First(); 
     element.Attribute("value").Value = value; 
    } 

Использование

SetValue("DailyFilName", "..."); 
0
private void SetValue(string xmlFilePath, string key, string value) 
{ 
    try 
    { 
     XDocument doc = XDocument.Load(xmlFilePath); 
     XElement element = doc.Descendants("add").Where(d => d.Attribute("key") != null && d.Attribute("key").Value == key).First(); 
     element.Attribute("value").Value = value; 
     doc.Save(xmlFilePath); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
} 
1

Я думаю, что вы хотите, если вы работаете с приложением. config file

ExeConfigurationFileMap map = new ExeConfigurationFileMap { ExeConfigFilename = "C:\\App.config"}; 

Configuration config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None); 

config.AppSettings.Settings["SettingKey1"].Value = "newValue"; 
config.Save(); 
Смежные вопросы