XSLTでは、C言語のforループ処理と似た繰り返し処理を行うため、xsl:for-each要素が用意されている。xsl:for-each要素は、選択されたノード集合に対して同じテンプレートを適用する場合に活用される。xsl:for-each文は次のように書くことができる。
@IT:「シンプルで高機能」なXSLTのプログラミング より
「ノード集合に対してテンプレートを適用」するってどういうことだろう?
テンプレートは雛型で、選択されたノード集合(カレントノードリスト)の各々のノード(カレントノード)が、テンプレート内で式やPatternを使う際のコンテキストノードとして渡され、それぞれがインスタンス化される。
このように、xsl:for-each要素によって繰り返し処理を行うなら、大きなデータでも一括変換することができる。
@IT:「シンプルで高機能」なXSLTのプログラミング より
xsl:apply-templatesでも「大きなデータを一括変換」できる。xsl:for-eachが本当に有用になる例を示した解説は皆無だ。少なくともこのサイトから得られるものはなさそう。