連載

.NETで簡単XML

第6回 .NETプログラムでXSLTスクリプトを使う

株式会社ピーデー 川俣 晶
2003/07/08

Back Issue
1
XML超入門
2 プログラムでXML文書を作成する
3 XML文書を読み書きするプログラムの作成
4 DOM(Document Object Model)

5

DOMとXPath

■今回のサンプル・プログラムについて

 今回もサンプル・プログラムは、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を学ぶハードルはそれほど高くはない。


 INDEX
  .NETで簡単XML
  第6回 .NETプログラムでXSLTスクリプトを使う
  1.XSLTとは何か
    2.XSLTミニ入門その1 要素に対応する出力
    3.XSLTミニ入門その2、3 属性に対応する出力/XPath式の値を出力
    4.プログラムでXSLTを処理/プログラム内のデータを変換
    5.XPathDocumentで処理を高速化/XSLTにプログラムを埋め込む
 
インデックス・ページヘ  「連載 :.NETで簡単XML」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間