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

问题描述:

我只是花了很长时间试图找出如何方便地使用XSLT和撒克逊排序古希腊语,所以我在这里问这个问题,以便其他人可以阅读答案,我将稍后发布。如何使用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;', '')"/> 

这是不是从一开始就很清楚,然而,我在这里张贴这个希望人们会发现这有帮助。

你有没有尝试这个办法:

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

http://www.saxonica.com/documentation/extensibility/collation.xml

+0

感谢。不,我没有找到文件,也没有理解或认识它。这正是我所期待的。 –

+0

是XSL 1还是2? –

+0

排序规则要求XSLT 2.0;它们在很大程度上也取决于实施。 –