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?


  • Administrator


Anmelden zum Antworten