Question

Je suis en train d'écrire une transformation pour un ensemble de noeuds, semblable à cela.

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

Le résultat est qu'il génère haut vers le bas (récursif):

<!--do stuff 5-->
<!--do stuff 4-->
<!--do stuff 3-->
<!--do stuff 2-->
<!--do stuff 1-->

Le problème est après génère le résultat, je besoin d'être dans le bon ordre:

<!--do stuff 1-->
<!--do stuff 2-->
<!--do stuff 3-->
<!--do stuff 4-->
<!--do stuff 5-->

Je suis d'idées sur la façon de recourir après ce récursion? Dois-je utiliser un autre modèle et mettre en œuvre apply-templates ou est-il une autre façon que je peux inverser l'ordre?

Était-ce utile?

La solution

Et si vous ajoutez l'appel récursif avant que le faire des choses?

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

Vous devriez obtenir l'ordre inverse.

Autres conseils

Pour comprendre récursion, vous devez d'abord comprendre la récursivité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top