如何在XSLT 1.0中的递归模板中执行递归模板?

时间:2013-09-10 13:38:31

标签: xml xslt recursion xslt-1.0

我正在尝试在递归模板中执行递归模板,但我无法

<xsl:template match="feed">
    <xsl:call-template name="recursiveLoop">
        <!-- for loop pass in params -->
    </xsl:call-template>

</xsl:template>

<xsl:template name="recursiveLoop">     
    <xsl:if test="$count &lt; 12">
        <!-- loop through 12 times -->
        <!-- sort months and get data -->

        <xsl:choose>
            <xsl:when test="($realCurrentMonth + $count = $outboundMonthFromDoc) or ($tempMonthToDisplay = $outboundMonthFromDoc)">
                <p><xsl:text>price is available</xsl:text></p>                              
            </xsl:when>
            <xsl:otherwise>             
                <xsl:call-template name="loopToFindCorrectMonth">
                    <xsl:with-param name="count2" select="0"/>                  
                </xsl:call-template>                    
                <xsl:template name="loopToFindCorrectMonth">
                    <xsl:param name="count2"/>
                    <xsl:if test="$count2 &lt; 12">
                        <xsl:text>hello</xsl:text>
                        <xsl:call-template name="loopToFindCorrectMonth">
                            <xsl:with-param name="count2" select="$count2 + 1"/>            
                        </xsl:call-template>
                    </xsl:if>           
                </xsl:template>                 
            </xsl:otherwise>
        </xsl:choose>   

        <xsl:call-template name="recursiveLoop">
            <!-- pass params in again -->
        </xsl:call-template>
    </xsl:if>
</xsl:template>

我的第一个循环是'recursiveLoop',我的第二个循环是'loopToFindCorrectMonth'。但是,第二个循环永远不会起作用。当我删除循环并用下面的简单输出语句替换它然后它工作。所以第二个循环有问题,我不知道它是什么。

<xsl:choose>
    <xsl:when test="($realCurrentMonth + $count = $outboundMonthFromDoc) or ($tempMonthToDisplay = $outboundMonthFromDoc)">
        <p><xsl:text>price is available</xsl:text></p>                              
    </xsl:when>
    <xsl:otherwise>             
        <p><xsl:text>Loop has been removed</xsl:text></p>   
    </xsl:otherwise>
</xsl:choose>   

0 个答案:

没有答案