XML inhalte ändern (ohne NS)
-
Hallo,
Ich bin gezwungen in einigen XML-Files etwas per C# zu ändern.
Ich habe hier ein Code Snippet, welches für besondere Fälle gut klappt:
if (File.Exists(XmlConfigFile)) { XElement config = XElement.Load(XmlConfigFile); XElement add = config.Descendants("add").FirstOrDefault(a => (string) a.Attribute("key") == "KeyName"); if (add != null) { add.SetAttributeValue("value", "true"); config.Save(XmlConfigFile); } }
das klappt aber nur wenn das XML etwa so aufgebaut ist:
<configuration> <Settings> <add key='KeyName' value='ValueString' /> ... <add key='KeyName2' value='ValueString' /> </Settings> </configuration>
Jetzt kommt es aber bei einigen files vor das es so aussieht:
<?xml version="1.0" encoding="utf-8"?> <AppBla> <AppBla.Mode2.Prot3.Settings> <EnableLogging>True</EnableLogging> <Enabled>False</Enabled> <DisplayName>Statistics</DisplayName> <SettingsType>Protocol</SettingsType> </AppBla.Mode2.Prot3.Settings> <AppBla.Mode2.Code3.Settings> <EnableLogging>True</EnableLogging> <Enabled>False</Enabled> <StrategyName>Statistics</StrategyName> <SettingsType>Protocol</SettingsType> </AppBla.Mode2.Code3.Settings> <AppBla>
Kann man den obigen Code so anpassen,
das ich anhand von angaben wie:
\AppBla\AppBla.Mode2.Code3.Settings\SettingsType
auf den Inhalt zugreifen und ihn ändern kann?(zB True auf False)Wie/wo würde ich da einhaken?
-
http://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument.aspx
http://msdn.microsoft.com/en-us/library/dcxb440a.aspx
http://msdn.microsoft.com/en-us/library/system.xml.xpath.extensions.aspxGrüssli