1
我正在使用xslt 1.0 我需要打印nos,從1開始給定長度。如何迭代在xslt中打印給定長度的nos?
例如如果給定的長度是5,那麼我需要迭代一個循環,可以迭代5次並打印nos,如1,2,3,4,5這樣。 我嘗試使用for循環,但是,我無法遞減要在每個迭代器中打印的值。
請對上述情況有任何建議? 感謝inadvanvce
我正在使用xslt 1.0 我需要打印nos,從1開始給定長度。如何迭代在xslt中打印給定長度的nos?
例如如果給定的長度是5,那麼我需要迭代一個循環,可以迭代5次並打印nos,如1,2,3,4,5這樣。 我嘗試使用for循環,但是,我無法遞減要在每個迭代器中打印的值。
請對上述情況有任何建議? 感謝inadvanvce
這種轉變:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:call-template name="printNumbers">
<xsl:with-param name="pUpTo" select="5"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="printNumbers">
<xsl:param name="pUpTo"/>
<xsl:param name="pCurrent" select="1"/>
<xsl:if test="$pUpTo >= $pCurrent">
<xsl:value-of select="$pCurrent"/>
<xsl:text> </xsl:text>
<xsl:call-template name="printNumbers">
<xsl:with-param name="pUpTo" select="$pUpTo"/>
<xsl:with-param name="pCurrent" select="$pCurrent+1"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
當任何XML文檔(未使用)應用時產生想要的,正確的結果:
1 2 3 4 5
對於成功產生巨大數量的項目,使用DVC風格的遞歸,如我在這個問題的答案:
Print numbers from one to one million
我推薦使用,以避免書面明確的遞歸花費太多時間FXSL庫的功能,也避免這樣做的任何潛在錯誤。