我正在为一组节点编写变换,类似于此。
<xsl:template match="/" name="nav">
<!--do stuff-->
<xsl:if test="notEnd">
<xsl:call-template name="nav"></xsl:call-template>
</xsl:if>
</xsl:template>
它生成的结果是自上而下(递归):
<!--do stuff 5-->
<!--do stuff 4-->
<!--do stuff 3-->
<!--do stuff 2-->
<!--do stuff 1-->
问题是在它生成结果之后,我需要它以正确的顺序:
<!--do stuff 1-->
<!--do stuff 2-->
<!--do stuff 3-->
<!--do stuff 4-->
<!--do stuff 5-->
我不知道如何在递归之后求助于此?我应该使用另一个模板并实现apply-templates,还是有另一种方法可以撤销订单?
答案 0 :(得分:1)
如果你在做东西之前添加递归调用怎么办?
<xsl:template match="/" name="nav">
<xsl:if test="notEnd">
<xsl:call-template name="nav"></xsl:call-template>
</xsl:if>
<!--do stuff-->
</xsl:template>
你应该得到相反的顺序。
答案 1 :(得分:0)
要理解递归,首先必须了解递归。