Итак, я пытаюсь решить проблему в xslt, которую я обычно знаю, как делать на императивном языке. Я добавляю ячейки в таблицу из списка элементов xml, стандартных файлов. Итак:XSLT 1.0 и подсчет строк
<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>
Однако, я хочу, чтобы отрезать одну строку и начать новый после определенного максимального символа достигнут. Скажем, я допускаю максимум 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>
В императивном языке, я бы добавить элементы в ряд, добавляя каждый элементы строкового количество до некоторой изменчивой переменной. Когда эта переменная превысила 20, я бы остановился, построил новую строку и перезапустил весь процесс (начиная с остановленного элемента) в этой строке после возврата числа строк до нуля. Однако я не могу изменить значения переменных в XSLT. Вся эта функция бездействия, функция оценки функции бросает меня за цикл.
Очень красиво сделано. – ColinE
, потому что symphony-cms использует XSLT 1.0. Я бы переключился, если бы смог. –