Как подсчитать вызовы шаблона в XSLT?

У меня есть XSLT-скрипт, который я хотел бы последовательно нумеровать каждый раз, когда вызываю шаблон. . Итак, очень сокращенная версия этого выглядит примерно так:

<xsl:call-template name="insertHeader" />
<xsl:for-each ...>  
    <xsl:call-template name="insertHeader" />
    ...
</xsl:for-each>
<xsl:call-template name="insertHeader" />

<xsl:template name="insertHeader>
    This is item number <xsl:value-of select="$numberOfInvocations />
</xsl:template>

Очевидно, что $ numberOfInvocations не работает, а в XSLT вы не можете увеличивать глобальную переменную счетчика, что могло бы показаться очевидным подходом на процедурном языке. Я хотел бы, чтобы он распечатал 1 при первом вызове шаблона, 2 при втором и т. Д. Как мне это сделать? Возможно ли это хотя бы отдаленно в XSLT?

Спасибо :)

Редактировать: Итак, было несколько комментариев о том, что это недостаточно четко определено. Я хочу пометить серию таблиц в выводе (HTML). Самый очевидный способ, который я вижу для этого, - это вызвать функцию (вы, вероятно, можете сказать, что я здесь не мастер XSLT), которая будет каждый раз автоматически увеличивать число. Я думаю, что причина, по которой это кажется таким сложным, заключается в том, что именно XSLT определяет, где появляются эти таблицы, а не ввод.

Эта дополнительная информация может быть не очень полезной, поскольку ответ Димитра звучит так, будто это никогда не сработает.В любом случае спасибо :)

5
задан Peter 10 September 2010 в 03:35
поделиться