だから私は、通常は命令型言語で行う方法を知っている xslt の問題を解決しようとしています。xml要素のリスト、標準的なものからテーブルにセルを追加しています。そう:
<some-elements>
<element>"the"</element>
<element>"minds"</element>
<element>"of"</element>
<element>"Douglas"</element>
<element>"Hofstadter"</element>
<element>"and"</element>
<element>"Luciano"</element>
<element>"Berio"</element>
</some-elements>
ただし、特定の最大文字数に達したら、1 行を切り捨てて新しい行を開始したいと考えています。したがって、1行あたり最大20文字を許可するとします。私はこれで終わるだろう:
<table>
<tr>
<td>"the"</td>
<td>"minds"</td>
<td>"of"</td>
<td>"Douglas"</td>
</tr>
<tr>
<td>"Hofstadter"</td>
<td>"and"</td>
<td>"Luciano"</td>
</tr>
<tr>
<td>"Berio"</td>
</tr>
</table>
命令型言語では、各要素 string-count を可変変数に追加しながら、要素を行に追加します。その変数が 20 を超えると、停止して新しい行を作成し、string-count をゼロに戻した後、その行で (停止した要素から開始して) プロセス全体を再実行します。ただし、XSLT で変数の値を変更することはできません。このステートレスな関数評価全体が、私をループに陥れています。