C#でLinq to XMLによる設定ファイル読み込みとバージョンアップ

本記事は、[C#での設定ファイル管理とパラメータのバージョンアップ]の続きとして、XMLを読み込む方法として、Linq to XMLによる設定情報やパラメータの扱いについて記載します。なお、書き込みについては、XMLのXpathによる部分を参照してください。

Linq to XMLによる読み込み

C#でLINQが.netで利用可能になってからLinq to XMLによるXML読み込みが可能になりました。これにより、古くからのXPath(DOM)によってXMLを扱うより速度も改善され、XMLも扱いやすくなったメリットは大きいです。

サンプルで使うXML

XMLはXPathによるXML読み込み時のXMLと同じものを使っています。

Linq to XMLXML読み込み

基本はXPathによる方法と同じく、XMLファイルをXmlDocumentとしてLoadしてから使います。

サンプル1:階層を持った処理の後、Linq to XMLで読み込み

Linqを使うこと以外に、XPathによる方法と大きな違いはありません。
usr.Attribute(“ID”);のように記述することで、XMLのAttribute部分に書いた情報を取得することもできます。

サンプル2:階層を意識せずノード名から直接Linq to XMLで読み込む

Descendants()を使うことで、XMLの面倒な階層構造を気にせず、ノード名を指定し、リストを取得することがメリットがあります。

出力結果

サンプル1,サンプル2ともに同じ結果になります。

Linq to XMLによる読み込みとクラス関連付け

Linq to XMLによるXMLを読み込んだ後、クラスへの反映は、XPathによるXML読み込み方法と大きく変わりありません。XMLのXPathによる読み書きのページを参照してください。

パラメータバージョンアップにおけるLinq to XML管理による影響

Linq to XMLによって設定情報を管理するも、XPathによるXML管理と大きく変わりありません。

まとめ

Linq to XMLによるXMLファイル管理は、XPathによるXMLの読み込みが発展し、LINQを利用することで利用しやすくなったことになります。さらに速度面でもかなり改善されているようなので、XPathによるXML読み込みよりは、Linq to XMLによるXML読み込みを推奨します。