machine.configファイルには、サードパーティのソフトウェアによって書き込まれた要素があるため、次のようになります。
<configuration>
<configSections>
...
</configSections>
...
<Custom>
<Level1> ...
</Level1>
<Level2> ...
</Level2>
<Level3>
<add key="key_text1" value="s1" />
<add key="key_text2" value="s2" />
<add key="key_text3" value="s3" />
</Level3>
</Custom>
</configuration>
たとえば、configuration / Custom/Level3ノードからkey="key_text2"である"value"属性の値( "s2")を取得したいと思います。これまで、machine.configをXMLとして開き、そこから作業しようとしました。
Configuration config = ConfigurationManager.OpenMachineConfiguration();
XmlDocument doc = new XmlDocument();
doc.LoadXml(config.FilePath);
ただし、XmlException「ルートレベルのデータが無効です。」が表示されます。また、これを行うためにConfigurationクラスメソッドを直接使用する方法もわかりません。任意のアイデアをいただければ幸いです。