予め 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 を作るのが面倒でごちゃごちゃやってた。だいぶスッキリしていい感じ。
ソース間違ってたのをちょっと修正。