質問: スタイルシートのfor-each select=に変数を使用したい お世話になります。 ・ ・ ・ ・ ・ ・ -(1) -(2) (1) (1)の箇所の「1000」を上で宣言したaを使用したく、 など色々試したのですが、うまくいきませんでした。 (2) (2)の箇所を「a」の変数に色々な形で置き換えてもうまくいきませんでした。 上記2点、を変数を使用して指定したいのですが、どのようにすれば実現できますでしょうか? 大変お手数とは思いますがよろしくお願いします。
回答: -(1) これでは,変数にする以前の問題として,まともに動かないのでは? 要素名の一文字目は数字にはできません。xpathも大丈夫でしょうか? まず,変数にする前にきちんと動くようにしたとして,次に変数にするには,環境によって難易度が異なります。 xalanのようにdyn:evaluate()が使えるものは,要素名を変数に文字列として入れて,これをevaluate関数でノードセットに戻します。 概念的には, として,要素名を''で囲んで,文字列としてhensuに格納します。 これを使うときは, などとしますが,evaluateの引数は,パーサによって異なります。 なお,msxmlは,そのまんまではevaluateを使えません。 次に, -(2)ですが,これを変数化するのは不可能だと思います。 match内のxpath表現をランタイムで変更できる仕様はないと思います(多分)。 variableもparamも,xsltの変数は,通常のプログラム言語の変数と異なり,とても制限が多く,使いづらいものなのです。