Метод Пиза для for-цикла

Метод Пиза для for-цикла

Для простых for-циклов, которые должны выполниться строго определенное число раз, вместо рекурсии можно использовать весьма остроумный метод, предложенный Венделлом Пизом (Wendell Piez, Mullberry Technologies, Inc). Суть метода состоит в том, что хоть мы и не можем сгенерировать множество узлов, выбрать множество с определенным количеством узлов нам вполне по силам.

Для начала выберем какое-нибудь множество узлов документа преобразования:

<xsl:variable name="set" select="document(')//node()"/>

Затем для повторения определенных действий несколько раз используем конструкцию вида

<xsl:for-each select="$set[position() &lt;= $number]">

 <!-- Действия -->

</xsl:for-each>

где number указывает требуемое число итераций.

При использовании метода Пиза следует учитывать следующие особенности.

? Множество узлов set не должно быть слишком большим — иначе его выбор будет неэффективным.

? Множество узлов set обязательно должно содержать число итераций (number) узлов.

В целом же метод Пиза — классический пример эффективного применения инструментов не по назначению.