C# で XML を XSLT で変換する方法

0 件のコメント

ここでは、XMLファイル と XSLTファイル を読み込んで、別のフォーマットに変換する方法を記載します。 ただ変換させるだけの処理なのでいきなり サンプルコード を以下に載せます。

source.xmltransform.xslt に従って変換する サンプルコード です。 変換した結果を文字列として再利用したいと考えているので、ここでの出力先は StringBuilder としています。

サンプルコード

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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 クラス を利用して変換が推奨みたいです。

今回、以下のサイトを参考にしました。

最後に… このブログに興味を持っていただけた方は、 ぜひ 「Facebookページ に いいね!」または 「Twitter の フォロー」 お願いします!!