XSLT基礎編: xsl:commentでコメントを生成

2005年01月30日(日)更新


XMLデータ中のコメント

たけち: これまでXSLTの基本的な要素について学んできたけど、まだ学んでいない要素もたくさんあるので、これから少しやってみよう。

さらら: は〜い。で、今回は何を教えてくれるの?

たけち: 今回は、XMLデータ中のコメントの生成についてやってみよう。

さらら: コメント?

たけち: コメントは、XMLデータを人間が見たときに、分かりやすいように注釈を書くためのものなんだよ。

さらら: そうなんだ。で、XSLTでどうやって書くのかを学ぶのね。

たけち: その前にまず、コメントの書き方を知っておこうね。

さらら: あ。そっ、そうだわね。(^ ^;

たけち: XMLでは、コメントは次のように書くんだよ。

XMLでのコメントの書き方
■XMLでのコメントの書き方

さらら: コメントの内容を <!----> とで囲めばいいのね。

たけち: そうそう。コメントの内容には--コメントです--のようにハイフンを二つ以上つなげて書かないようにね。

さらら: はい。

たけち: じゃあ、コメントを生成するためのXSLTでの書き方を見てみようね。

さらら: うん。お願いね。


コメントを生成するためのxsl:comment要素

たけち: コメントを生成するためには、xsl:comment要素を次のように書くんだよ。

xsl:comment要素の書き方
■xsl:comment要素の書き方

さらら: そんなに難しくはなさそうね。

たけち: そうなんだね。じゃあ、具体的にXMLファイルからコメントを含んだHTMLファイルを作成することをやってみよう。

さらら: えぇ。

たけち: 次の、いつものXMLデータをつかうね。


XMLファイルとXSLTファイルの例

【poem.xml】

【poem.xml】 XMLファイル: 万葉集第1巻・第2巻抜粋

<?xml version="1.0" encoding="Shift_JIS" ?>

<manyosyu>
<poem pno="8">
  <poet>額田王(ぬかたのおおきみ)</poet>
  <yomi>熟田津(にきたつ)に船(ふな)乗りせむと月待てば潮もかなひぬ今は漕(こ)ぎ出(い)でな</yomi>
</poem>

<poem pno="20">
  <poet>額田王(ぬかたのおおきみ)</poet>
  <yomi>茜(あかね)さす 紫野行き標野(しめの)行き 野守(のもり)は見ずや 君が袖振る</yomi>
</poem>

<poem pno="28">
  <poet>持統天皇(じとうてんのう)</poet>
  <yomi>春過ぎて 夏来たるらし 白妙(しろたえ)の 衣干したり 天(あめ)の香具山(かぐやま)</yomi>
</poem>

<poem pno="37">
  <poet>柿本人麻呂(かきのもとのひとまろ)</poet>
  <yomi>見れど飽かぬ 吉野の川の 常滑(とこなめ)の 絶ゆることなく またかへり見む</yomi>
</poem>

<poem pno="113">
  <poet>額田王(ぬかたのおおきみ)</poet>
  <yomi>み吉野(よしの)の 玉(たま)松(まつ)が枝(え)は はしきかも 君が御言(みこと)を 持ちて通(かよ)はく</yomi>
</poem>

<poem pno="137">
  <poet>柿本人麻呂(かきのもとのひとまろ)</poet>
  <yomi>秋山に 落つる黄葉(もみちば) しましくは な散り乱ひそ 妹があたり見む</yomi>
</poem>

</manyosyu>

たけち: XSLTは、コメントの部分が目立つように、ごく簡単なものにしておこうね。

さらら: は〜い。

【comment.xslt】

【comment.xslt】 XSLTファイル: コメントを含んだHTMLを生成します

<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="html" encoding="Shift_JIS" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"/>
<xsl:template match="/">
    <html>
    <head>
    <title>たのしいXML: XSLTスタイルシート例(xsl:commentでコメントを生成)</title>
    </head>

    <body>
    <p align="center"><font color="navy">万葉集第1巻抜粋: xsl:commentでコメントを生成</font></p>

    <xsl:apply-templates />

    </body>
    </html>
</xsl:template>

<xsl:template match="poem">
    <xsl:comment><xsl:value-of select="poet" />の歌です。</xsl:comment>
    <p>・<xsl:value-of select="yomi" /></p>
</xsl:template>

</xsl:stylesheet>

さらら: あっ、コメントに作者の名前(poet)を入れるようにしているのね。

たけち: そうだよ。じゃあ、前回までにやった xalan を使ってHTMLファイルを生成してみよう。プロンプトウィンドウで次のようにコマンドを入力してみて。出力するHTMLファイル名はcomment.htmlとしておこう。

xalanを使ってXMLファイルからHTMLファイルを生成する
■xalanを使ってXMLファイルからHTMLファイルを生成する


生成されたHTMLファイルを確認する

さらら: やってみたわ。HTMLファイルはできているのよね。どれどれ。。。。あっ、できてる!!

C:\csvフォルダにCSVファイルが生成されている
■C:\csvフォルダにcomment.htmlファイルが生成されている

たけち: 念のために、このcomment.htmlファイルの内容をテキストエディタで見てごらん。

さらら: はい。じゃあ、ちょっと見てみるわね。

【comment.html】

【comment.html】 出力されたHTMLファイル: コメントを含んだHTMLファイルが生成されています

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>たのしいXML: XSLTスタイルシート例(xsl:commentでコメントを生成)</title>
</head>
<body>
<p align="center">
<font color="navy">万葉集第1巻抜粋: xsl:commentでコメントを生成</font>
</p>
<!--額田王(ぬかたのおおきみ)の歌です。-->
<p>・熟田津(にきたつ)に船(ふな)乗りせむと月待てば潮もかなひぬ今は漕(こ)ぎ出(い)でな</p>

<!--額田王(ぬかたのおおきみ)の歌です。-->
<p>・茜(あかね)さす 紫野行き標野(しめの)行き 野守(のもり)は見ずや 君が袖振る</p>

<!--持統天皇(じとうてんのう)の歌です。-->
<p>・春過ぎて 夏来たるらし 白妙(しろたえ)の 衣干したり 天(あめ)の香具山(かぐやま)</p>

<!--柿本人麻呂(かきのもとのひとまろ)の歌です。-->
<p>・見れど飽かぬ 吉野の川の 常滑(とこなめ)の 絶ゆることなく またかへり見む</p>

<!--額田王(ぬかたのおおきみ)の歌です。-->
<p>・み吉野(よしの)の 玉(たま)松(まつ)が枝(え)は はしきかも 君が御言(みこと)を 持ちて通(かよ)はく</p>

<!--柿本人麻呂(かきのもとのひとまろ)の歌です。-->
<p>・秋山に 落つる黄葉(もみちば) しましくは な散り乱ひそ 妹があたり見む</p>

</body>
</html>

さらら: あっ、ちゃんと作者名の入ったコメントができてる。

たけち: 簡単な例だけど、分かったよね。あっ、そうそう。IEでも見た様子を載せておくね。

comment.htmlをIEで見てみる
■comment.htmlをIEで見てみる

さらら: IEで見るとコメントは見えないわね。
コメントだから当たり前だけど。(^ ^;

たけち: じゃあ、今回はここまでね。

さらら: はい。ありがとう! 

→次回は、xsl:includeです。・・・ (^ ^;