|
 |
連載
.NETで簡単XML
第6回 .NETプログラムでXSLTスクリプトを使う
株式会社ピーデー 川俣 晶
2003/07/08 |
|
■今回のサンプル・プログラムについて
今回もサンプル・プログラムは、Visual Basic .NET(以下VB.NET)とC#で記述したものを用意した。VB.NETのサンプルを掲載するとともに、VB.NET、C#それぞれへのサンプルのリンクを張ってあるので、必要に応じてダウンロードしてほしい。開発環境としてはVisual Studio .NET 2003を使用することを前提にしている。前回まではVisual Studio .NET 2002を使っていたが、すでに2003が正式に発売されていることと、今回扱う範囲では一部メソッドの仕様が、証拠(evidence)関係の変更に伴い変化されていることから、今後利用されることが多いと思われる2003を前提とすることに変更させていただいた。
サンプル・プログラムはすべてWindowsアプリケーションとしてプロジェクトを作成後に、フォームのLoadイベントに実行するコードを書き込み、Trace.WriteLineメソッドで結果を出力する。結果の確認は、統合開発環境の出力ウィンドウで行う(一部例外あり)。それぞれのソースの先頭には、以下のコードが書かれているものとする。
Imports System.IO
Imports System.Xml
Imports System.Xml.Xsl
Imports System.Xml.XPath
|
|
VB.NETの場合 |
using System.IO;
using System.Xml;
using System.Xml.Xsl;
using System.Xml.XPath;
|
|
C#の場合 |
XSLTとは何か?
前回お届けした連載第5回では、XPathと呼ばれる言語を使用してノードを選択するDOMの機能を解説した。このXPathという言語は、本来はDOMのためのものではなく、XSL Transformations(以下XSLT)という言語などと一緒に使われるために生まれたものであった。XSLTは、XML文書をHTML文書、XML文書、プレーン・テキストなどに変換するルールを記述するために使用できる一種のスクリプト言語である。これもXPathと同じく、World Wide Web Consortium(W3C)の勧告(Recommendation)であり、特定企業の製品用に特化した言語ではない。その点でも学んでおくと、広い範囲で使える機会があるだろう。
VB.NETやC#で十分にXML文書を読み込んで変換するプログラムを書けるのに、どうしてXSLTという別の言語が必要なのだろうか。XSLTにはスタイルシート変換という役割を与えられていて、プログラム言語ではないということがその理由だ。XSLTはWebブラウザなどに組み込まれ、XML文書を表示する際に適切な見かけを与えるために使われるものなのである。つまり、XSLTは、任意のXML文書を任意のXML文書に変換することもできるが、本来の用途はHTMLやXSL-FO(XML専用のスタイルシートの表示を担う言語)へ変換することにある。そのため、XSLTはWebブラウザなどが機能として持つことが多い。例えば、Internet Explorerは、XSLTを用いてXML文書をHTML文書に変換して表示する機能を持っている。
とはいえ、ある種のXML文書の変換は、VB.NETやC#で記述するよりも、XSLTを用いた方が簡単に書ける場合がある。そのほか、XSLTスクリプトで表示内容をカスタマイズするなど、自作プログラム中でXSLTを活用したい場面もあるだろう。.NET Frameworkのクラス・ライブラリには、そのような場合に利用できるXslTransformクラス(System.Xml.Xsl名前空間)が用意されている。今回はこれについて解説を行うのだが、肝心のXSLTが分からなければXslTransformクラスも使うことができない。まずは、簡単なXSLT入門から始めよう。
幸いにして、この連載ではすでにXPathを解説済みである。XPathを知っていれば、XSLTを学ぶハードルはそれほど高くはない。
Insider.NET 記事ランキング
本日
月間