我無法將參數傳遞給模板。如何將一個參數從一個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',認爲上下文可能是問題。 –