xsl:param にノード集合を渡す。
予め xmlns:t="http://temporary/" とかやっておく。既存の空間が利用できるならそれ使ってもいいと思う。
<xsl:call-template name="tempfoo"> <xsl:with-param name="foo" xmlns="http://temporary/"> <foo>Foo</foo> <foo>Bar</foo> </xsl:with-param> </xsl:call-template>
<xsl:template name="tempfoo"> <xsl:param name="foo"/> <ol> <xsl:for-each select="$foo/t:foo"> <li><xsl:value-of select="."/></li> </xsl:for-each> </ol> </xsl:template>
<ol> <li>Foo</li> <li>Bar</li> </ol>
渡すほうに名前空間を指定しない場合は、(あたりまえだけど) デフォルトの空間になる。でもそのまま template のほうで接頭辞なしでアクセスしようとしても無理。
できないと思ってた方法ができると分かって、いろいろ楽できる! 諦めかけていたなか光をくれた (謎) 哀さん にありがとう
namazu スタイルシートをつくるときに、一個の option 要素ごとに selected を入れるかの if を作るのが面倒でごちゃごちゃやってた。だいぶスッキリしていい感じ。
ソース間違ってたのをちょっと修正。
関連エントリー
- XSLT の XPath の ネームスペース宣言の集合は、式が現れるアトリビュートを持つエレメントのスコープに含まれるものと同じである。この集合には、XML ネームスペー...
- Sablotron にノード集合を渡す。 XSLT エンジンにノード集合渡したいことが多々あるけど、params にナマの XML を渡しても当たり前にサニタライズされたただの文字列...
- Ruby/XSLT て パラメータ渡せないくさいんだけど、もし本当にそうならあんまりこのまま使えないなぁ。XSLT ファイルを一回パースして xsl:param に...
- 結果ツリーフラグメント 注意 これは間違ってるかもしれない。実際に実装を使って確かめたわけじゃない。今はめんどくさくて確かめたくないので覚書的なもの。 変数バインド...
- ✖ ごちゃごちゃやってたけど、文字とか、バランスとか、よくわかんなくなって泣きそうになってやめた…… 精密さがないと思うんだけど、どこに精密さが...