XML の関数型変換 (LINQ to XML)
この記事では、XML ドキュメントを変更するための純粋関数型変換の方法について説明し、手続き型の方法と比較します。
XML ドキュメントの変更
XML プログラマにとって最も一般的なタスクの 1 つが、XML の形式の変換です。 XML ドキュメントの形式とはドキュメントの構造のことで、次のものが含まれます。
- ドキュメントによって表される階層。
- 要素名および属性名。
- 要素と属性のデータ型。
一般に、XML の形式を変換するために最も効果的なのは、純粋関数型変換の方法です。 この方法におけるプログラマの主なタスクは、XML ドキュメント全体 (または 1 つ以上の厳密に定義されたノード) に適用する変換を作成することです。 関数型変換は、(プログラマがこの方法をいったん理解すれば) コードの記述が最も簡単で、最も保守しやすいコードが得られ、多くの場合、その他の方法よりもコンパクトです。
XML の関数型変換のテクノロジ
Microsoft では、XML ドキュメントで使用する関数型変換のテクノロジを 2 つ用意しています。XSLT と LINQ to XML です。 XSLT は、System.Xml.Xsl マネージド名前空間と、MSXML のネイティブな COM 実装でサポートされています。 XSLT は XML ドキュメントを操作するための堅牢なテクノロジですが、XSLT 言語とそれに対応する API に関する専門知識を必要とします。
LINQ to XML には、純粋関数型変換のコードを C# または Visual Basic のコード内にさまざまな表現で効果的に記述できるツールが用意されています。 たとえば、LINQ to XML のドキュメントに記載されている多くの例で、純粋関数型の方法が使用されています。 また、チュートリアル: WordprocessingML ドキュメント内のコンテンツの操作に関するチュートリアルでは、Microsoft Word 文書の情報を操作するために、LINQ to XML を関数型の方法も使用されています。
LINQ to XML とその他の Microsoft XML テクノロジのより完全な比較については、「LINQ to XML とその他の XML テクノロジ」を参照してください。
ソース ドキュメントの構造が標準的でない場合、ドキュメント中心の変換には XSLT を使用することをお勧めします。 ただし、LINQ to XML でもドキュメント中心の変換を実行できます。 詳細については、注釈を使用して XSLT スタイルの LINQ to XML ツリーを変換する方法に関するページを参照してください。
関連項目
.NET