XSLT ordre de modèle inverse par apply-templates ou call-template?
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?
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