我一直在使用<xsl:sort select="."/>
方法对某些值进行排序,我可以强制排序方法遵循以下顺序,
i) sort numbers first
ii) next greek symbols
iii) and next english alphabets
我得到的是输出,
i) numbers
ii) alphabets
iii) greek symbols
答案 0 :(得分:1)
您可以使用三个xsl:sort
,其中第一个尝试删除除数字之外的任何内容,例如
<xsl:sort select="xs:integer(replace(., '[^0-9]+', ''))"/>
然后添加第二种
<xsl:sort select="replace(., '[^0-9a-z]+', '', 'i')"/>
对剩余的希腊字符进行排序,最后进行
<xsl:sort select="replace(., '[^a-z]+', '', 'i')"/>
对英文字母进行排序。如果需要,正则表达式还允许您定义希腊字母的范围,但我不知道有unicode数字,所以如果您需要,可以在unicode.org查找。