ここでは、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 の フォロー」 お願いします!!