2010-11-23 13 views
1

dies ist meine XML-Datei ...bearbeiten XML-Datei mit 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"/> 

Ich muss meine DailyFilName von C# bearbeiten. Mit Key muss ich den Wert ändern.

+0

ist diese App.config-Datei? – Shekhar

Antwort

3

Je nach Art der Datei gibt es eine Reihe von Optionen, die Sie verwenden können.

Wenn es sich um eine Standard-XML-Datei handelt, können Sie .NET-Klassen wie XmlReader, XmlWriter und XPathNavigator verwenden. Beispiele verfügbar auf MSDN.

Wenn es sich um eine app.config-Datei handelt, können Sie den Namespace Configuration verwenden, um direkt mit der Datei zu arbeiten, ohne das Xml manuell lesen/schreiben zu müssen. Überprüfen Sie die Klasse ConfigurationManager auf MSDN für einige Beispiele.

1

[. HINWEIS: wenn Sie versuchen, appSettings Abschnitt in app.config oder web.config-Datei, die Verwendung von ConfigurationManager wird empfohlen, zu manipulieren]

Sie können etwas tun, wie folgt aus:

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; 
    } 

Usage

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

ich glaube, Sie dies wünschen, wenn Sie mit einer App arbeiten. Konfigurationsdatei

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

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

config.AppSettings.Settings["SettingKey1"].Value = "newValue"; 
config.Save();