0

いくつかのスタイルシートとテンプレートがあり、それらすべてにいくつかの動作を追加したいと思います。そのようなことを言いましょう:

<xsl:template match="*" priority='10'>
    <xsl:apply-templates select="." mode="someFunStuffsToDo"/>
    <xsl:next-match/>
</xsl:template>

しかし、私はいくつかの一般的なテンプレートが必要なので、私が持つことができるすべての異なるタイプのパラメータを知らないので、私はパラメータに問題があります。

そのようなことを言う「簡単な」方法はありますか?

<xsl:template match="*" priority='10'>
    <xsl:param select="All the params you get"/>
    <xsl:apply-templates select="." mode="someFunStuffsToDo">
         <xsl:with-param select="All the params you got"/>
    </xsl:apply-templates>
    <xsl:next-match/>
</xsl:template>

paramsのノードを含むgenericparamに基づくソリューションを想像することはできますが、実際のテンプレートのほとんどを書き直して、genericテンプレートのさまざまな特定のparams宣言を切り替える必要があります...

編集:わかりました、質問を投稿する直前に解決策を見つけたと思います:トンネルパラメータ。私が理解しているように、それは私の目的のために働いていますか?

<xsl:template match="*" priority='10'>
    <xsl:apply-templates select="." mode="someFunStuffsToDo"/>
    <xsl:next-match/>
</xsl:template>

属性tunnel='yes'を使用して前後にパラメーターを設定した場合に機能しますか?(私はまだテストしていないので恥ずかしいですが、次の試合は現在のモードを維持すると思います)

4

1 に答える 1

0

はい、パラメータは役立ちますが、渡すコードと受け取るテンプレートにそれぞれtunnelがあることを確認する必要があります。ただし、その間にあるテンプレートのように、テンプレートは必要ありません。<xsl:with-param name="foo" tunnel="yes" select="bar"/><xsl:param name="foo" tunnel="yes"/>with-param

于 2012-10-31T17:45:57.403 に答える