我有一个使用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>
Run Code Online (Sandbox Code Playgroud)
这段代码不起作用,我有一个编译错误"在该上下文中不允许元素排序".
谢谢你的帮助!
将变量用作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>
Run Code Online (Sandbox Code Playgroud)