2016-08-29 6 views
0

Iが適用され、テンプレートを呼び出しています:XSLTテンプレートパラメータ内の属性値を取得する方法は?次のように

<xsl:apply-templates> 
    <xsl:with-param name="pWeight" select="@layoutWeight * $pContentWidth" /> 
</xsl:apply-templates> 

は私が働いている、テンプレートを適用するには、子要素のlayoutWeight属性値にアクセスしようとしています。ただし、子アイテムにはlayoutWeightの数値があり、pContentWidthの数値も数値であるにもかかわらず、計算は常に空と評価されます。

apply-templatesの子要素のlayoutWeight属性にアクセスするにはどうすればよいですか?

答えて

1

with-paramselect属性は、テンプレートが適用されている各ノードに対してではなく、周囲のコンテキストに対して評価されます。自身が@layoutWidthにアクセスする他のオプションは以下のようになり

<xsl:for-each select="node()"> 
    <xsl:apply-templates select="."> 
    <xsl:with-param name="pWeight" select="@layoutWeight * $pContentWidth" /> 
    </xsl:apply-templates> 
</xsl:for-each> 

だけapply-templates$pContentWidthパラメータを渡すために、テンプレート(複数可)を持っている:あなたがやろうとしているものを達成するための一つの方法はapply-templatesfor-eachで包んであります計算を実行する。

関連する問題