Я думаю, что нет прямого способа сделать это в XSL, но вы хотели бы проверить с вами все, прежде чем писать код на стороне сервера.Функция сна в XSL
Я работаю над веб-сайтом, чтобы отображать твиты из сотен различных учетных записей, используя API twitter. Существует большой файл XML, содержащий более 200 идентификаторов и счетчиков твиттера (1-12). У меня есть PHP-скрипт, который выполняет OAuth и выводит JSON с помощью API twitter. Этот PHP-файл принимает как id, так и count как строки запроса. Теперь twitter имеет ограничение на количество запросов, которые могут быть отправлены за 15 минут. Поскольку веб-страницы генерируется с помощью преобразования XSL через Saxon, я думал сделать что-то как-
<xsl:template name="all-social">
<xsl:for-each select="/social/twitter">
<xsl:value-of select="unparsed-text(concat('http://something/twitter.php?
id=',@id,'&count=',@count))"/>
<!-- or apply-templates select="document(--URL--)" -->
</xsl:for-each>
</xsl:template>
это возвращает JSON твитов, и я могу делать все, что на переднем конце, чтобы отобразить его должным образом. Но преодолеть ограничения API мне нужно добавить паузу или сон внутри цикла for-each
как-
<xsl:template name="all-social">
<xsl:for-each select="/social/twitter">
<!-- Wait for 5 seconds -->
<xsl:value-of select="unparsed-text(concat('http://something/twitter.php?
id=',@id,'&count=',@count))"/>
</xsl:for-each>
</xsl:template>
Опять же, я понимаю, что это очень легко сделать только с помощью сценариев на стороне сервера, на я Любопытно, есть ли способ добавить sleep() во время преобразования XSL. Любые идеи/рекомендации будут высоко оценены.
Вы объединяете XSLT с процедурными языками программирования. 'For-each' в XSLT не является« циклом », а выход XSLT не нужен, пока не завершится весь XSLT. Поэтому, даже если бы вы могли делать то, что вы пытаетесь сделать, это было бы нецелесообразно. – JLRishe
Почему сон во время трансформации, а не просто _before_ это, то есть между преобразованиями? –