我无法将参数传递给模板。如何将一个参数从一个XSLT模板传递到另一个?
<!-- // Product/Instances -->
<xsl:template match="/data/products/instances">
<ul>
<xsl:apply-templates select="item">
<xsl:with-param name="idp" select="@id"/>
</xsl:apply-templates>
</ul>
</xsl:template>
<!-- // Product/Instances/Instance -->
<xsl:template match="/data/products/instances/item">
<xsl:param name="idp"/>
<p>$idp: <xsl:value-of select="$idp"/></p> <!-- $idp is empty -->
<xsl:for-each select="/data/instances/entry">
<xsl:if test="@id = $idp">
<p><xsl:value-of select="code"/></p>
</xsl:if>
</xsl:for-each>
</xsl:template>
/data/products/instances/item
具有名为id
的属性,其具有的整数的值。
虽然第二个模板及其for-each循环正在处理中(我通过输出其中的虚拟输出来测试它们),但$idp
参数的值未传递给第二个模板。
谢谢。
+1一个正确的答案。 –
谢谢!您提供的'xsl:variable'解决方案是可行的。关于'xsl:with-param',我发现即使在执行' '时,我也无法获得第二个整数输出模板。我也试过'item/@ id',认为上下文可能是问题。 –