2003年8月31日(日)更新 |
■簡単な目録を表示する
たけち: これまでの学習で、とりあえず万葉集の歌とイメージを表形式で表示することが出来たね。 さらら: えぇ。思っていたよりもきれいに表示できるものなのね。 たけち: 今回はその表示の前に、表示している万葉歌の簡単な目録を表示させてみようと思うんだ。 さらら: あっ、そうね。たくさんの歌があったときには便利だわね。 たけち: そうだね。じゃあ、まずはごく簡単に、次のようにしてみよう。元のXMLデータも再確認しておこうね。 |
※XMLデータ例: 万葉集第1巻抜粋 |
たけち: このように表示するにはどうしたらいいと思う? さらら: う〜ん、と。。。。poem要素ノードに適用するテンプレートを作って、poem要素ノードの子ノードpno要素の内容をとってくればいいのよね。 たけち: 考え方はそうだけどね。ちょっと作ってみて。 さらら: こんな感じかしらね。 |
■poem要素ノードに対するテンプレートを追加してみます
※XSLTスタイルシート例: 簡単な目録付き???(by さらら) |
たけち: 雰囲気はいい感じだねぇ〜。 さらら: あら。なっ、なに。その言い方・・・(^ ^; たけち: じゃあ、試しに表示してみようか。 さらら: えぇ。画面を見てみましょう。 |
さらら: あっ、あれ〜・・・ (^ ^; 歌番号が表示されないわ。どうして? たけち: うん。上のXSLTスタイルシートをよく見てご覧。 さらら: あっ、そうなんだ。。。そう言われれば、どっちをつかっていいのか分かんないわね。 でも、<xsl:apply-templates /> は二つかいてあるんだけど、これはどうなのかしら。 たけち: 表示されたものをよ〜く見てご覧。下にスクロールすると同じものがもうひとつ出てくるよ。 |
■mode属性
さらら: あっ。ほんとだ。・・・ (^ ^; じゃあ、こんなときはどうしたらいいの? たけち: こんなときは、mode属性を使って、適用するテンプレートを選ぶんだ。 さらら: mode属性? たけち: xsl:apply-templates要素とxsl:template要素で、同じ値を持つmode属性を書くんだ。 さらら: そうなんだ。 |
■mode属性を使ったXSLTスタイルシート
たけち: じゃあ。さららの作ってくれたXSLTスタイルシートをmode属性を使ったものに変更してみよう。ちょっとの違いだから分かるよね。 |
※XSLTスタイルシート例: 簡単な目録付きで万葉歌を表示 |
さらら: なるほどねぇ。こうすると、歌番号だけの簡単な目録を表示するためのテンプレートがちゃんと選ばれるのね。 たけち: じゃあ、このXSLテキストを"mode.xsl"というファイルにして、実際にどうなるか見てみようね。次のテキストをクリックしてみて。あっ、そうそう。いつもと同じように、2行目は |
さらら: ちゃんと歌番号だけの目録が表示されたわ。。。ところで たけち: あっ、これは、歌番号の間のカンマを作っているんだけど、最後の歌番号にはカンマをつけないようにしているんだ。詳しくは別のところで説明するね。 さらら: あっ、はい。 たけち: じゃ。今回はここまでね。 さらら: ありがと。 →次は、xsl:for-eachです。。。(^ ^; |