.NETでお手軽XSLT
2011年5月31日(火曜日)
.NETでお手軽XSLT
公開: 2011年6月5日17時55分頃
とあるCSVからXMLを経由してXSLTでHTMLを生成するプログラムを作成して披露したら、「XSLTの良い処理系ってありませんか?」みたいな話に。実は.NET FrameworkにはSystem.Xml.Xsl.XslCompiledTransformというクラスがあってXSLT1.0の変換ができますので、それをそのまま使うという手があります。
Visual Studioが必要そうに思えるかもしれませんが、そんなことはなくて、以下のような手順でコンパイルすることができます。
- .NET Framework デベロッパー センター (msdn.microsoft.com)から、最新の.NET Frameworkをダウンロードしてインストールする。
- .NET Frameworkについているcse.exeを探す。おそらく C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe のような場所にあります。
- 以下のような C# のコードを用意して xslt.cs というファイル名で保存する。
- コマンドプロンプトから C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe xslt.cs のようにしてコンパイルする。
コードはたとえばこんな感じ。
using System;
using System.Xml;
using System.Xml.Xsl;
public class Xslt{
public static int Main(string[] args){
try{
if(args.Length < 2){
Console.WriteLine("Usage: xslt XMLfile XSLTfile");
return 1;
}
XslCompiledTransform xct = new XslCompiledTransform();
xct.Load(args[1]);
XmlWriter xw = XmlWriter.Create(Console.Out, xct.OutputSettings);
xct.Transform(args[0], xw);
return 0;
} catch (Exception e){
Console.WriteLine(e);
return 1;
}
}
}
エラー処理を除くと実質4行です。これをコンパイルすると xslt.exe というファイルができます。あとはコマンドラインから xslt XMLfileXSLT file > result.html のようにすれば動きます。
- 「.NETでお手軽XSLT」にコメントを書く
- 前(古い): 第1回アクセシビリティBAR~初夏のパンくず祭
- 次(新しい): 被害者は誰?
