1

我只是花了太长时间试图找出如何使用 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;', '')"/>

然而,这从一开始就不清楚,我在这里发布这个希望人们会觉得这很有帮助。

4

1 回答 1

3

你试过这个:

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

请参阅http://www.saxonica.com/documentation/extensibility/collat​​ion.xml

于 2012-06-21T21:50:05.187 回答