ここでは、XMLファイル と XSLTファイル を読み込んで、別のフォーマットに変換する方法を記載します。 ただ変換させるだけの処理なのでいきなり サンプルコード を以下に載せます。
source.xml を transform.xslt に従って変換する サンプルコード です。
変換した結果を文字列として再利用したいと考えているので、ここでの出力先は StringBuilder
としています。
サンプルコード
namespace SampleConsoleApplication { using System; using System.Text; using System.Xml; using System.Xml.Xsl; class Program { static void Main(string[] args) { var inputUri = @"D:\source.xml"; var stylesheetUri = @"D:\transform.xslt"; // XSLTファイル の読み込み var xslt = new XslCompiledTransform(); xslt.Load(stylesheetUri); // 出力先を 文字列 として準備 var output = new StringBuilder(); // 出力フォーマット の指定 var settings = new XmlWriterSettings(); settings.Indent = true; settings.OmitXmlDeclaration = false; // XSLT を利用した 変換処理 using (var writer = XmlWriter.Create(output, settings)) { xslt.Transform(inputUri, writer); } // 処理結果を出力 Console.WriteLine(output.ToString()); } } }
いくつかの記事では XslTransform クラス
を利用して変換しているようでしたが、このクラスは .NET Framework 2.0 以降は廃止されているようです。
基本的にはその後継となる XslCompiledTransform クラス
を利用して変換が推奨みたいです。
今回、以下のサイトを参考にしました。
- MSDN - XslTransform クラス
- MSDN - XslCompiledTransform クラス
- MSDN - XsltArgumentList クラス
- MSDN - 方法 : XML Web サーバー コントロール内の XML データを変換する
- Microsoft サポート - Visual C# を使用して、XML ドキュメントに XSL 変換を適用する方法
- 宇宙仮面の C# Programming - XMLをXSLTで変換
最後に… このブログに興味を持っていただけた方は、 ぜひ 「Facebookページ に いいね!」または 「Twitter の フォロー」 お願いします!!