Я настраиваю устройство Google Search, которое использует XSLT для представления результатов пользователю. Наш дизайн призывает, чтобы одно из нескольких изображений было включено случайным образом на странице результатов. Существует ли способ использовать случайность в XSLT? (Псевдослучайность очень хорошо для этого приложения.)
Вызов случайных шаблонов был бы прекрасен, как будет просто способность генерировать случайное число и ответвление на основе этого.
В зависимости от вашей платформы XSL позволяет вводить пользовательский код наподобие C #. Я этого не рекомендую. Лучше, если бы ваш XSL принимал параметр и все, что генерирует ваши полезные данные XML или XSLT, а также мог бы генерировать случайное число, задав параметр. Я сделал это именно так, используя этот подход, за исключением того, что данные были получены из Bing, а не G.
Вы можете генерировать в чистом XSLT последовательности случайных чисел, а также случайные перестановки чисел в [1 .. N].
Просто используйте для этого библиотеку FXSL (написанную на чистом XSLT).
В этой статье объясняются используемые шаблоны и приведены полные примеры:
« Игра в кости с FXSL: функции генерации случайных чисел в XSLT ».
Если вы не прочь включить библиотеки, есть много доступных например random: random-sequence из EXSLT
Если вы используете XSLT-движок на базе Java, это позволит вам делать вызовы любого статического метода из библиотек Java, например java.lang.Math.random(). Вот синтаксис...
<?xml version='1.0'?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:math="java.lang.Math"
version='1.1'>
<xsl:template match="/">
<xsl:variable name="myRandom" select="math:random()"/>
<xsl:value-of select="$myRandom"/>
</xsl:template>
</xsl:stylesheet>