XSLT Обратный порядок шаблонов через apply-templates или call-template? - PullRequest
1 голос
/ 14 мая 2009

Я пишу преобразование для набора узлов, подобное этому.

  <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 или есть другой способ, которым я могу изменить порядок?

Ответы [ 2 ]

1 голос
/ 14 мая 2009

Что, если вы добавите рекурсивный вызов перед делом do?

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

Вы должны получить обратный заказ.

0 голосов
/ 25 мая 2009

Чтобы понять рекурсию, сначала вы должны понять рекурсию.

...