按等级排序表困难

Order table by level difficult

本文关键字:排序      更新时间:2023-09-26

我有一个游戏表,格式如下:

ID | GameName | EasyLevels | HardLevels | TotalLevels
1    Stakeboard  32           28          60
....

该表由包含以下内容的xslt文件生成:

<xsl:for-each select="//games">
    <tr>
            <th>GameID</th>
            <th>GameName</th>
            <th>EasyLevels</th>
            <th>HardLevels</th>
            <th>TotalLevels</th>
    </tr>
    <xsl:for-each select="game">
        <tr>
            <td><xsl:value-of select="GameId"/></td>
            <td><xsl:value-of select="GameName"/></td>
            <td><xsl:value-of select="count(levels/level[leveldifficult='Easy'])"/></td>
            <td><xsl:value-of select="count(levels/level[leveldifficult='Hard'])"/></td>
            <td><xsl:value-of select="count(levels/level)"/></td>
        </tr>
    </xsl:for-each>
</xsl:for-each>

我也有两个按钮的xslt文件。因为我希望当点击按钮时,可以根据每个关卡的难度排序。但我不知道如何在xslt中做到这一点。你知道这怎么可能吗?

<button>Order By Number Of EasyLevels</button>
<button>Order By Number Of HardLevels</button>

xml是这样的:

<games>
    <game>
        <GameId>1</GameID>
        <GameName>Game Title</GameName>
        <levels>
            <level>
                <environment>City</environment>
                <music>city_40</music>
                <difficult>easy</difficult>
            </level>
            <level>
                ....
            </level>
            ....
        </levels>
    </game>
   ´
     <game>
        <GameId>2</GameID>
        <GameName>Game Title 2</GameName>
        <levels>
            <level>
                <environment>forest</environment>
                <music>forest_100</music>
                <difficult>hard</difficult>
            </level>
            <level>
                ....
            </level>
            ....
        </levels>
    </game>
</games>

tl dr:您可能正在寻找排序函数

XSLT已经有一个排序函数,根据定义的标准对信息排序

<xsl:sort
   select = string-expression 
   lang = { nmtoken }
   data-type = { "text" | "number" | QName }
   order = { "ascending" | "descending" }
   case-order = { "upper-first" | "lower-first" }
</xsl:sort>

属性:

  • select节点排序键。
  • lang使用的语言字母表确定排序顺序。
  • Data -type信息的数据类型(文本、值、QName)
  • order排序顺序(升序、降序)。默认为"升序"
  • case-order字符串的排序顺序资本化。默认为upper-first。