2001年1月14日(日)更新 |
■サンプルXMLテキストを表示する(9): 歌を表示(xsl:ifでテキストの内容によって表示を変えよう
たけち: 前にxsl:choose, xsl:when, xsl:otherwiseっていうのを使って、XMLテキストの内容を判断して、表示するしないを指定するサンプルを作ったよね。覚えてる? さらら: あっ、そっ、そういうのあったわね・・・・ (^ ^; たけち: xsl:ifっていうのを使って、同じようなことができるんだ。それを使って、今回は万葉集XMLテキストのなかから、さらら(持統天皇)の歌だけを表示してみよう。 さらら: あら、たけちったら気を使ってくれてるのね。 |
たけち: まぁね。さららの歌だけを判断するのは、<作者>タグと</作者>タグで囲まれたテキスト(内容)が'持統天皇(じとうてんのう)'かどうかを調べればいいんだ。そのときだけ歌の内容を表示するようにすればいいよね。 さらら: うんうん。 (^ ^* たけち: 確認のために次に説明図を載せておくね。 |
たけち: だいたい、雰囲気は分かるよね。 さらら: うん。わかるわ。早くXSLのリストを見てみたいわ。・・・ (^ ^; たけち: そうだね。じゃあ、次にいつものようにリストを載せるね。 |
<?xml version="1.0" encoding="Shift_JIS"?> <table border="0" width="500" align="center"> <xsl:if test="作者[.$eq$ '持統天皇(じとうてんのう)']"> <tr> <th>歌番号: <xsl:value-of select="歌番号" /></th> <th><xsl:value-of select="作者" />の歌</th> </tr> <tr> <td colspan="2">原文: <xsl:value-of select="原文" /></td> </tr> <tr> <td colspan="2">読み: <xsl:value-of select="読み" /></td> </tr> <tr> <td><xsl:value-of select="意味" /></td> <td> <img> <xsl:attribute name="src"> <xsl:value-of select="イメージ" /> </xsl:attribute> </img> </td> </tr> </xsl:if> </table></xsl:for-each> </xsl:template> </xsl:stylesheet> |
さらら: なるほどねぇ。 たけち: じゃあ、このXSLテキストを"basic4.xsl"というファイルにして、実際にどうなるか見てみようね。次のテキストをクリックしてみて。あっ、そうそう。いつもと同じように、2行目は |
さらら: へぇ〜、おもしろいわねぇ。確かに、私の歌だけ表示されているわ。。。。。。ひとつだけだから、ちょっと寂しいけど。 (^ ^; たけち: 巻2の歌もいれればよかったかな?! さらら: あっ、いいのよ。。。。。ところで、XSLの指定がxsl:choose, xsl:when, xsl:otherwiseっていうのより、なんだかすっきりしているように見えるわ。使い方はどう違うのかしら。 |
たけち: うん。どっちでもおんなじことができるんだけど、たとえば今回の場合で言うと、額田の歌・さららの歌・人麻呂の歌でそれぞれ表示の仕方を変えたいようなときは、xsl:chooseを使うとすっきり見えるかもね。 さらら: ふう〜ん。そうなんだぁ。 たけち: じゃあ、今回はここまで。 さらら: はぁい。 (^ ^* →さらに続きます。。。(^ ^)v |