我试图了解撒克逊处理器如何选择升序。XSLT - 字符串和数字升序,撒克逊处理器
我有喜欢的XML如下
<catalog>
<cd>
<title lan="en">Empire Burlesque</title>
<price>10.90</price>
<year>1985</year>
</cd>
<cd>
<title lan="en">Hide your heart</title>
<price> </price>
<year>1988</year>
</cd>
<cd>
<title lan="fr">Greatest Hits</title>
<price>13.90</price>
<year>1982</year>
</cd>
<cd>
<title lan="sp">Still got the blues</title>
<price>abc</price>
<year>1990</year>
</cd>
<cd>
<title lan="fr">Eros</title>
<price>24.90</price>
<year>1997</year>
</cd>
</catalog>
,当我这个排序按价格我把它给我下面的结果。请注意,我将空字符串放在一个价格值和字符串'abc'
没有另一个价格值。
<catalog>
<cd>
<title lan="en">Hide your heart</title>
<price> </price>
<year>1988</year>
</cd>
<cd>
<title lan="en">Empire Burlesque</title>
<price>10.90</price>
<year>1985</year>
</cd>
<cd>
<title lan="fr">Greatest Hits</title>
<price>13.90</price>
<year>1982</year>
</cd>
<cd>
<title lan="fr">Eros</title>
<price>24.90</price>
<year>1997</year>
</cd>
<cd>
<title lan="sp">Still got the blues</title>
<price>abc</price>
<year>1990</year>
</cd>
</catalog>
它似乎空字符串是第一位的,那么价格有数字,预期和价格上具有字符串值已经整理,已经是第一位的,
如何这个顺序由撒克逊处理器决定?
非常明确的答案。 – sanjay
更具体地说:XSLT 2.0表示默认顺序是依赖于实现的。在Saxon实现中,默认顺序是通过Unicode代码值进行的。如果你想要数字排序,使用data-type =“number”效果很好。如果你有混合的文本和数字,指定'collation =“http://saxon.sf.net/collation?alphanumeric = yes'可能会给出最好的结果 - 尽管我不确定它是否也处理十进制数作为整数。 –