2013-03-27 54 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