2003年10月19日(日)更新 |
■xsl:variableで変数を使いましょう
たけち: 今回は xsl:variableの使い方をサンプルで勉強しようね。 さらら: xsl:variable?? どんなものなの? たけち: うん。これはね、XMLテキストのある情報をあちこちで使いたいときなんかに、その内容をxsl:variableで指定した「変数」にとっておいて使うんだ。 さらら: へぇ〜。「変数」なんて使えるの。難しくないの? たけち: 意外に簡単なんだよ。まずは、xsl:variableでの変数の定義と、その変数の参照の仕方を図で説明しておくね。 |
さらら: 二通りの方法があるのね。でも、これだけだと、どっちもよく分かんないわ。 たけち: そうだね。やっぱり具体的に書いてみないと分かりにくいかもね。それぞれのの使い方を具体的にサンプルを作ってやってみようね。 さらら: いつもと同じようにするのね。 たけち: そうだけど、今回は「変数」を使うようにするとXMLデータもこれまでよりずっと簡単になるんだ。 |
■xsl:variableのサンプルの説明
たけち: xsl:variableサンプルで変数を使う個所の説明を図にしておくね。変数は次の二つを使います。
|
さらら: manyo_urlはリンク先のURLを作るときに使うのね。う〜ん、と。。。no_of_poemには、どうやってpoemごとのpno属性の値を入れるのかしら・・・ たけち: それぞれの変数の値はselect属性で定義すればいいんだよ。次に書いておくね。 |
■manyo_urlの定義 ■no_of_poemの定義 |
さらら: あっ、こうやって書くのね。参照するときは、$manyo_urlとか、$no_of_poeっていう風に書けばいいのかしら・・ たけち: そうそう。じゃあ、今回のサンプルのXMLテキストとのXSLスタイルシートを次に載せるね。 |
■xsl:variableのサンプルXMLテキストとXSLスタイルシート
サンプルXMLテキスト |
---|
<?xml version="1.0" encoding="Shift_JIS"?> |
たけち: 今回のXMLデータには、imageタグが無くなっているからね。 さらら: あっ、本当だわ。。。。。それに、url属性も無くなっているわ!! どうしてかしら・・・ たけち: それは、次のXSLスタイルシートを読んでみるとわかると思うよ。 |
xslスタイルシート |
---|
<?xml version="1.0" encoding="Shift_JIS"?> |
さらら: 頭のところで、変数manyo_urlが定義されているわね。それと、poem要素用のtemplateで変数no_of_poemが定義されているわね。 たけち: そうだね。 さらら: でも、manyo_urlの定義とno_of_poemの定義は、書いてある場所が違うわね。これはどうして?? たけち: no_of_poemは、poemごとに違うよね。だから、<xsl:template match="manyosyu/poem">のところに書いておかないといけないんだよ。 さらら: あっ、そっかぁ〜 (^ ^* |
■manyo_urlとno_of_poemの参照個所
さらら: 変数manyo_urlと変数no_of_poemが参照されているところのconcatってなぁに? たけち: このconcatは、",(カンマ)"で区切って指定した文字列をくっつけて一つにするものなんだ。詳しくは別の項(concat)で説明しているから、ここではあまり気にしないで。 さらら: はい。つまりは、 たけち: そうだね。それから、 さらら: なるほど。。。それで、もとのXMLデータにimg要素が必要なくなっているのね。 |
たけち: じゃあ、このXMLテキストを"variable.xml"というファイル、XSLスタイルシートを"variable.xsl"というファイルにして、実際にどうなるか見てみようね。次のテキストをクリックしてみて。 |
さらら: なるほどね〜。同じような表示をするときでも、XSLTスタイルシートの書き方っていろいろあるのね・・・・ たけち: そうだね。。今回のサンプルでは、XMLデータから、imageタグなんかを無くしたよね。このようにimageタグは表示のために使う情報だからほんとうはXMLデータには無いほうがいいんだよね。 さらら: そうだわね。XMLデータは少しでも短いほうが私には読みやすいわ!! たけち: そうだね。じゃぁ今回はここまで。 さらら: は〜い。(^ ^* →次回はxsl:call-templateです。 (^ ^; |