2006年07月16日(日)更新 |
■xsl:call-templateでtemplateを呼び出しましょう
たけち: 今回は templateを呼び出すxsl:call-templateの使い方をサンプルで勉強しようね。 さらら: xsl:call-templateって名前からなんとなく想像ができそうね。 たけち: うん。文字通り、xsl:call-templateは、xsl:templateで指定したテンプレートを呼び出して、xsl:call-templateの個所にそのテンプレートが書かれていたのと同じ結果を導き出すんだ。 さらら: うんうん。まるで「関数」みたいなのね。 たけち: そうだね、そんな感じなんだね。じゃぁ、まずxsl:call-templateの使い方を図で説明しておくね。 |
さらら: そんなに難しくなさそうね。nameが一致したテンプレートが使われるのね。 たけち: そうそう。じゃぁ、今回はこのxsl:call-templateを使って、xsl:variableで変換したのと同じような表示をしてみよう。ここではどんな風にxsl:call-templateを使っているのかを次の図で説明するね。 |
■xsl:call-templateのサンプルの説明
たけち: テンプレートの内容はxsl:variableサンプルのものとほぼ同じだから分かると思うよ。それぞれのテンプレートでは次のことをやっているね。
さらら: あっ、分かるわ。 たけち: よかった。。。。じゃあ、今回のサンプルのXMLデータとXSLTスタイルシートを次に載せるね。 |
■xsl:call-templateのサンプルXMLテキストとXSLスタイルシート
サンプルXMLデータ【call-template.xml】 |
---|
<?xml version="1.0" encoding="Shift_JIS"?> |
【call-template.xsl】 |
---|
<?xml version="1.0" encoding="Shift_JIS"?> |
たけち: じゃあ、このXMLテキストを"call-template.xml"というファイル、XSLスタイルシートを"call-template.xsl"というファイルにして、実際にどうなるか見てみようね。次のテキストをクリックしてみて。 |
さらら: ねぇ。。。xsl:call-templateの使い方は分かったけど、このサンプルだと別にxsl:call-templateを使わなくてもいいんじゃないの? たけち: あっ、うぅ・・・それはそうなんだけど。 さらら: うふふ・・・ (^ ^* たけちったら本気にしちゃって・・・ たけち: さらら・・・・ (ーー; じゃぁ、次回はtemplateにパラメタを渡す方法を勉強しようね。 さらら: パラメタ?? たけち: それは次回のお楽しみ。 さらら: は〜い。(^ ^* →次回はxsl:with-paramです (^ ^; |