ページ 11

xsl:ifの中でxsl:variable

Posted: 2007年12月13日(木) 16:26
by oae
条件によって変数の値を変えたいと思っています。

いろいろ試行錯誤した結果、xsl:ifの中ではxsl:variableは機能していないように思います。

これもXSLTの仕様上の問題でしょうか?
ご存知の方がおられましたら教えてください。

宜しくお願いします。

Re: xsl:ifの中でxsl:variable

Posted: 2007年12月14日(金) 00:40
by webmaster
 おそらく、xsl:ifの中でxsl:variableを定義し、xsl:ifの外側でそのvariableを参照
しようとされているのだと思います。

 プログラマ的には非常に自然な発想だと思いますが、variableはそれが宣言された
位置と同レベル、又はその下位要素からしか参照することができない為、機能して
いないように見えるのだと思います。

 また、XSLTの仕様上、variableを別の値で上書きすることができません。
 variableという名前にも関わらず、XSLTのvariableはJavaでいうfinal変数の
ように振舞います。

 この点、非常に歯がゆいかと思いますが、これを踏まえた上でロジックを再構成
して頂く必要があるかと思います。m(__)m

 もしよろしければ、アルゴリズムの検討のお手伝いができるかもしれませんので、
ご要望をお知らせ下さい。

Posted: 2007年12月14日(金) 16:51
by oae
>おそらく、xsl:ifの中でxsl:variableを定義し、xsl:ifの外側でそのvariableを参照
しようとされているのだと思います。

その通りです。
無理なのですね…。

もう一度考え直してみようと思います。
それでも分からない場合はまた相談させてください。