如何使用XSLT对古希腊词进行排序?

时间:2012-06-21 18:14:19

标签: xslt sorting unicode diacritics

我花了太长时间试图找出如何使用XSLT和撒克逊方便地对古希腊语进行排序,所以我在这里问这个问题,以便其他人可以阅读答案,我将在稍后发布。

在对古典希腊语进行排序时,变音符号通常会被忽略。

但是,在unicode中表示重音希腊字母的方法不止一种。

因此,下面的代码首先规范化希望分组键,我希望对非预合成字符进行排序,然后为了排序而删除变音符号:

<xsl:sort select="translate(normalize-unicode(current-grouping-key(), 'NFD'), 
&#x0300;&#x0301;&#x0304;&#x0306;&#x0313;&#x0313;&#x0300;&#x0313;&#x0300;&#x0345;&#x0313;
&#x0301;&#x0313;&#x0301;&#x0345;&#x0313;&#x0342;&#x0313;&#x0342;&#x0345;&#x0313;&#x0345;
&#x0314;&#x0314;&#x0300;&#x0314;&#x0300;&#x0345;&#x0314;&#x0301;&#x0314;&#x0301;&#x0345;
&#x0314;&#x0342;&#x0314;&#x0342;&#x0345;&#x0314;&#x0345;&#x0345;', '')"/>

然而,从一开始就不清楚这一点,我在此发帖,希望人们会发现这有用。

1 个答案:

答案 0 :(得分:3)

你试过这个:

<xsl:sort select="..." collation="http://saxon.sf.net/collation?ignore-modifiers=yes"/>

请参阅http://www.saxonica.com/documentation/extensibility/collation.xml