以前は結構使う機会があったと思うのですが、最近はどうだろう。XSL Transformations(XSLT)をC#で行いたい機会があって調べたのでメモ。
ちなみに、XSLTとはXMLに記述されたデータをスクリプトなどなしに思い通りの出力形式に変換する仕組み。 必要な情報だけ取り出したり、ページングするためにデータ範囲を決めたりして、主にHTMLに変換したりします。
以下、XMLとXSLTを入力としてXMLを出力する関数のサンプル。
static void TransformXslt(String inputXmlFilePath, String inputXsltFilePath, String outputXmlFilePath) { // xmlの読み込み var xmlDoc = new XmlDocument(); xmlDoc.Load(inputXmlFilePath); // xsltの読み込み var xslt = new XslCompiledTransform(); var xsltSettings = new XsltSettings() { EnableDocumentFunction = true, // XSLT有効 EnableScript = true, // スクリプトブロック有効 }; xslt.Load(inputXsltFilePath, xsltSettings, null); // 出力XML Writer生成 var writerSetting = new XmlWriterSettings() { Indent = true, // インデント有効 IndentChars = " ", // インデントタブ文字列 }; using (var writer = XmlTextWriter.Create(outputXmlFilePath, writerSetting)) { // xmlをxsltで変換 xslt.Transform(xmlDoc, null, writer); } }