代码之家  ›  专栏  ›  技术社区  ›  Sean McMains

XSLT中的随机项

  •  11
  • Sean McMains  · 技术社区  · 16 年前

    调用随机模板就可以了,只要能够生成一个随机数并在此基础上进行分支就可以了。

    5 回复  |  直到 15 年前
        1
  •  5
  •   No Refunds No Returns    16 年前

    根据您的平台,XSL允许注入像C#这样的用户代码。我不推荐这个。更好的是,我会让您的XSL接受一个参数和生成XML负载或XSLT的任何东西,还可以生成随机数,设置参数。我完全是用这个方法做的,除了数据来自Bing,而不是G。

        2
  •  8
  •   Dimitre Novatchev    16 年前

    您可以在纯XSLT中生成随机数序列,也可以生成[1]中数字的随机排列。。N] 是的。

    FXSL library (用纯XSLT编写)。

    本文介绍了要使用的模板,并提供了完整的示例:

    " Casting the Dice with FXSL: Random Number Generation Functions in XSLT ".

        3
  •  4
  •   dacracot    16 年前

    如果您使用基于Java的XSLT引擎,这将允许您调用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>
    
        4
  •  2
  •   Karmic Coder    16 年前

    如果您不反对包含库,那么有很多可用的库,例如 random:random-sequence from EXSLT

        5
  •  1
  •   Defigo    12 年前

    如果你是为微软做这件事,我发现使用XSLT的函数ddwrt:Random是可行的。

    <xsl:variable name="RowCount" select="count($Rows)" />
    <xsl:variable name="RandomNumber" select="ddwrt:Random(1, $RowCount)" />
    

    以及以下内容

    <xsl:for-each select="$Rows[position() = $RandomNumber]">
    <xsl:value-of select="@Title" /></xsl:for-each>
    
    推荐文章