number.xml: <?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/xsl" href="number.xsl" ?> <root> <start>6</start> </root> number.xsl: <?xml version="1.0" encoding="utf-8" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:param name="beg" select="root/start"/><!--起始值,这里取自XML,也可直接在此设定--> <xsl:param name="end" select="31"/><!--最大值,最后输出结果由起始值和步长值共同决定,并非一定是最大值,但不会大于最大值--> <xsl:param name="step" select="3"/><!--步长值--> <xsl:template match="/"> <xsl:call-template name="numtemplate"> <xsl:with-param name="number" select="0"/> </xsl:call-template> </xsl:template> <xsl:template name="numtemplate"> <xsl:param name="number"/> <xsl:if test="not($number > ($end - $beg))"> <xsl:value-of select="$beg + $number"/><br/> <xsl:call-template name="numtemplate"> <xsl:with-param name="number" select="$number + $step"/> </xsl:call-template> </xsl:if> </xsl:template> </xsl:stylesheet>