1. ホーム
  2. xslt

[解決済み] XSLT : 1から60までのループ処理

2022-02-18 09:37:11

質問

XSLTで1から60までループさせるのに最も適した方法は何ですか? ネットで調べると、これを行うためのテンプレートがいくつかあるようですが、例えば組み込み関数のような他の方法はないのでしょうか?

どのように解決するのですか?

XSLT 2.0では。

<xsl:for-each select="1 to 60">...</xsl:for-each>

でも、XSLT 1.0を使っているのでしょうね、そうでなければ質問しないでしょう。

XSLT 1.0では、再帰を使用する必要があります。呼び出しのたびに増分するカウンターを持つ自己呼び出しのテンプレートで、必要な値に達すると再帰が終了します。

また、XSLT 1.0には回避策があります。ソース・ドキュメントに少なくとも60個のノードが含まれていれば、次のようにすることができます。

<xsl:for-each select="(//node())[60 >= position()]">...</xsl:for-each>