XML構成ファイルがあり、時々新しい要素を追加します。アプリケーションの外部で読みやすくするために、「add」要素の「key」属性でアルファベット順にソートしたままにしておきます。
たくさんの試行錯誤の末、ここ、あちこち、どこからでも収集したコードを使用して、以下のコードを思いつきました。うまく機能しているように見えますが、私はLinq to XMLを学び始めたばかりなので、これが適切な方法であるかどうか、または私が見逃したより良い/より効率的な方法があるかどうかを知りたいです。ファイル要素全体を再作成するのに不必要な手順を踏んでいるように感じます。
ガイダンス、考え、洞察をいただければ幸いです。
Dim newEx = cfgEx.<appSettings>(0)
newEx.Add(<add key=<%= sNewKey %> value=<%= sValue %>/>)
Dim sortEx = <configuration>
<appSettings>
<%= From c In cfgEx.<appSettings>.<add> Order By c.@key Select c %>
</appSettings>
</configuration>
cfgEx.ReplaceAll(sortEx.Nodes)
cfgEx.Save(sXmlConfigFile)
編集
さて、私はこれを行うためのより良い方法を考え出したと思います–sortEx
変数内のすべての親タグを明示的に再作成することなく:
Dim newEx = cfgEx.<appSettings>(0)
newEx.Add(<add key=<%= sNewKey %> value=<%= sValue %>/>)
Dim sortEx = From c In newEx.<add> Order By c.@key Select c
newEx.ReplaceAll(sortEx)
cfgEx.Save(sXmlConfigFile)
ですから、今の唯一の質問は、この方法に何か問題があるのでしょうか。