WWW INFOMATION | |||||||||||||||||||||||||||||||||||
XML top >>XSLT
■XSLT
XML文章を別形式に変換する手法であるXSLTは、利用範囲が広く重要なXML関連仕様となっています。本章では、InternetExploreを使用して、XMLをHTMLファイルに変換することによりXSLTを学びます。(HTML、ある程度のプログラミング知識、IEが必要となります。)
以下にXSLTについて説明します。
■ XSLT概要
XMLに対して、表示方法を設定したり、別の形式のフォーマットに変換するための仕様としてXSL(Extensible
Stylesheet Language)があります。この仕様は、XMLの表示を設定するXSL-FO(XSL
Formatting Object)とXMLファイルを別の形式に変換するXSLT(XSL
Transfomation)から構成されています。
本ページでは、XMLからHTMLへの変換に使用されることが多いXSLTについて説明します。 上記で説明した通り、XSLはXMLを別形式に変換します。別形式に変換する際には、XSLファイルという変換方法を記述したファイルを使用します。 ■ XSLT要素
XSLT変換を行うプログラム(XSLプロセッサ)は、変換を定義したXSLファイルを読み込みその定義に従ってXMLファイルを別形式に変換します。
InternetExploreは、XSLプロセッサを内臓していますので、XMLファイル内に以下の命令があった場合、XSLTファイルを読み込み指定された形式に変換し、表示します。
<?xml-stylesheet type="text/xsl" href="XXXXX.xsl" ?>
<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="sample.xsl"> <members> <member> <name num="01">ななしのごんべい</name> <addr tel="03-xxxx-xxxxx">東京都江戸川区</addr> </member> <member> <name num="02">ななしの太郎</name> <addr tel="045-xxxx-xxxxx">神奈川県川崎市</addr> </member> <member> <name num="03">亀陀 亀増</name> <addr>鳥取県XXXX</addr> </member> </members> ・XSLファイル(sample.xsl)
<?xml version="1.0" ?>
<!-- 以下の名前空間xslがXSLTの命令を意味する。URLは固定なので注意。 --> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/tR/WD-xsl"> <xsl:template match="/"> <!-- 名前空間xslに属しない要素はそのまま出力される。 --> <html> <head> <title>Sample</title> </head> <body> <!-- 名前空間xslに属する要素は命令として処理される。 --> <xsl:for-each select="members/member"> <hr/> <table border="1" align="center" width="250"> <tr> <td>会員番号</td> <td> <xsl:value-of select="./name/@num"/> </td> </tr> <tr> <td>名前</td> <td><xsl:value-of select="./name"/></td> </tr> </table> <br/> </xsl:for-each> <hr/> </body> </html> </xsl:template> <!-- xsl名前空間が有効であるここまでが XSLTの命令を書ける。 --> </xsl:stylesheet> このファイルを表示するとこのようになります。 箇条書きにXSLファイルのポイントを書いておきます。
説明中に出てくるXSL例文は、以下のXMLを使用しているものとします。
<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="sample.xsl"> <members> <member> <name num="01">ななしのごんべい</name> <addr tel="03-xxxx-xxxxx">東京都江戸川区</addr> </member> <member> <name num="02">ななしの太郎</name> <addr tel="045-xxxx-xxxxx">神奈川県川崎市</addr> </member> <member> <name num="03">亀陀 亀増</name> <addr>鳥取県XXXX</addr> </member> </members>
■ 補足
上記に、XSLTの要素の使用例を複数示していますが、XSLTの要素はこれだけではありません。要素を生成するなど生成系の要素、外部ファイルを読み込むための要素、XML文書をコピーする要素など他にもあります。
また、本稿では、出力はテキストで行っていますが、HTMLやXMLでの出力も可能です。 いずれ本文中に追記しますが、これらのことにご注意下さい。 |
|
||||||||||||||||||||||||||||||||||