.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~初夏のパンくず祭
- 次(新しい): 被害者は誰?