1

我正在为一组节点编写一个转换,类似于这个。

  <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-->

我对递归后如何解决这个问题一无所知?我应该使用另一个模板并实现应用模板还是有另一种方法可以颠倒顺序?

4

2 回答 2

1

如果在 do 之前添加递归调用会怎样?

  <xsl:template match="/" name="nav">
      <xsl:if test="notEnd">
       <xsl:call-template name="nav"></xsl:call-template>
      </xsl:if>
      <!--do stuff-->
  </xsl:template>

你应该得到相反的顺序。

于 2009-05-13T20:45:01.423 回答
0

要了解递归,首先必须了解递归。

于 2009-05-25T05:09:44.680 回答