水無月ばけらのえび日記

bakera.jp > 水無月ばけらのえび日記 > .NETでお手軽XSLT

.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が必要そうに思えるかもしれませんが、そんなことはなくて、以下のような手順でコンパイルすることができます。

コードはたとえばこんな感じ。

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 のようにすれば動きます。

関連する話題: プログラミング / C# / .NET

最近の日記

関わった本など