XMLページをIEで表示させよう(基礎編): 一番簡単なXSLスタイルシートの例

2002年3月31日(日)更新


■サンプルXMLテキストを表示する(2): 一番簡単なXSLスタイルシートの例

たけち: とにかく書いてみようね。次に一番簡単なXSLスタイルシートを載せてみるよ。青い文字の個所は、HTMLタグだね。前に言ったけど、IE6.0でXMLを表示させるには、XMLテキストとXSLテキストを使ってHTMLを作るようにするんだ。

<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
  <html>
  <head>
  <title>たのしいXML: 基本サンプル-1</title>
  </head>
  <body>
    <p align="center">万葉集第1巻抜粋: とにかく表示してみよう</p>
    <p><xsl:value-of select="manyosyu" /></p>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>

たけち: xsl:templateの開始タグにあるmatch="/"で、もとのXMLドキュメント(万葉集のサンプルドキュメントですね)のルート要素に対して変換処理をすることを示しているんだね。

さらら: "/"(スラッシュ)って、ルート要素のことなのね。。。。。xsl:template要素の中は、ほとんどHTMLのタグだわ。

たけち: うん。HTMLに変換しようということだからね。ただし、一箇所だけHTMLと違うところがあるね。
<xsl:value-of select="manyosyu" />がそれだね。
それは「XMLドキュメントの"manyosyu"というタグの下の文字(テキスト)を全部持ってきて、ここ(pタグ:段落タグの間)に入れてください。」という指定をしているんだよ。

xsl:value-ofの概要

さらら: ふ〜ん。そうかぁ・・・これを見ていると、なんだか、HTMLテキストにXSL指定が混ざりこんでいるって感じね。さっき、たけちが「さららは、HTMLが分かるんだから心配ないよ!!」って言った意味が分かったわ。少しだけど、ほっとしたわ。

たけち: いままでのことを簡単に図にしておくね。

一番簡単なXSLスタイルシートの例の概要

たけち: じゃあ、このXSLテキストを"basic_1.xsl"(ご覧になるときはxxx.xslかxxx.xmlでファイルに保存してくださいね)というファイルにして、実際にどうなるか見てみようね。次のテキストをクリックしてみて。あっ、そうそう。前回作ったXMLテキストの2行目に
<?xml-stylesheet type="text/xsl" href="basic_1.xsl"?>
という行を追加しているからね。そうしないと、せっかく作ったXSLが使われないからね。

万葉集第1巻抜粋のXMLファイル(上記説明のXSL適用)

こんな風に表示されます・・・

さらら: あっ、出た出た!! あれ〜。文字がみ〜んなつながってるよ。いいの? こんなので?

たけち: うん。このXSLの指定だとこうなるんだ。先頭の文字、「万葉集第1巻抜粋: とにかく表示してみよう」はXSLの中で、指定したものがそのまま表示されているよね。

たけち: つまり、<xsl:value-of select="manyosyu" />って指定したところに、「manyosyu」の下の「volume」の下にあるすべての「poem」の「pno」「mkana」「poet」「yomi」「image」「mean」の要素の内容のテキスト(文字列)がすべて表示されているってことだよね。

さらら: なんだぁ、そうなのね。。。。。でも、見た目はともかく、XSLスタイルシートでXMLをHTMLに変換して、IE6.0で表示することができたのね。

たけち: これはとりあえずの第一歩。次からは、それぞれの要素についてxsl:templateを適用するようにして、も少しマシな感じに見えるようにしようね。

さらら: うん。たのしみだわ。(*^ ^*)

→次回は、歌の読みだけを表示です。 (^ ^)