我試圖瞭解撒克遜處理器如何選擇升序。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'可能會給出最好的結果 - 儘管我不確定它是否也處理十進制數作爲整數。 –