2

我有一个使用 XSLT 1.0 转换为 HTML 的 XML 文件,但我想根据用户选择对数据进行排序。我在 PHP 中设置了一个变量供选择,它有效,但我不知道如何进行这种条件排序。

这是我的带有变量 $sort_by 的代码:

        <xsl:for-each select="gpx:gpx/gpx:wpt">
         <xsl:choose>
          <xsl:when test="$sort_by = 'name'">
              <xsl:sort select="grdspk:cache/grdspk:name"/>
          </xsl:when>
          <xsl:when test="$sort_by = 'owner'">
              <xsl:sort select="grdspk:cache/grdspk:owner"/>
          </xsl:when>
          <xsl:when test="$sort_by = 'difficulty'">
              <xsl:sort select="grdspk:cache/grdspk:difficulty"/>
          </xsl:when>
        </xsl:choose>

此代码不起作用,我有一个编译错误“在该上下文中不允许元素排序”。

谢谢你的帮助!

4

1 回答 1

5

将变量用作xsl:sort选择条件的 XPath 的一部分

<xsl:for-each select="gpx:gpx/gpx:wpt">
    <xsl:sort select="grdspk:cache/grdspk:*[local-name()=$sort_by]"/>
    <!--additional logic goes here-->
</xsl:for-each>
于 2013-06-07T22:44:01.267 回答