2013-03-27 93 views
0

我有XSLT其中XSLT排序特定值

<xsl:for-each select="$Rows"> 
<xsl:sort select="@ows_plstx" order="ascending" /> 

我需要输出,其中第一个排序值被定义文本值@ ows_plstx =“特定值”并以升序然后XSLT排序其他@ows_plstx值。

首先定义@ows_plstx特定值

其他@ows_plstx值

...

...

我怎么能实现呢?对不起,我对XSLT不是很熟悉。

回答

0

您可以使用布尔值true转换为数字1和布尔值false转换为数字0

<xsl:for-each select="$Rows"> 
    <xsl:sort select="number(@ows_plstx = 'specific value')" 
      order="descending" data-type="number" /> 
    <xsl:sort select="@ows_plstx" order="ascending" /> 

number(@ows_plstx = 'specific value')是1为“特定值” 0所有其他价值的事实,所以排序按这些数值的降序排列应首先放置“特定值”。从技术上来说,number()这个选择没有必要,但我认为它更清晰一点。

+0

我明白,它的工作原理。非常感谢! – Ketlin 2013-03-28 06:27:02

+0

@Ketlin很高兴它的工作,并欢迎Stack Overflow。为了将来的参考,当你得到一个解决你的问题的答案,你应该考虑_接受它通过点击左边的刻度线。 – 2013-03-28 09:16:56