Игнорировать регистр при выполнении xsl: sort - PullRequest
3 голосов
/ 18 февраля 2010

Я пытаюсь отсортировать документ XML с помощью xsl: sort

Мое требование - игнорировать регистр при выполнении сортировки. У xsl: sort есть атрибут case-order, который помогает указать верхний-первый или нижний-первый, что мне не поможет.

Я также пытался использовать функцию перевода, что-то вроде этого:

<xsl:sort select="translate('abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ',sortOn)" order="ascending" />";

тоже не работает.

Идеи ценятся.

Ответы [ 2 ]

5 голосов
/ 18 февраля 2010

Параметры вашей функции перевода находятся в неправильном порядке.

<xsl:sort select="translate(sortOn 'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')" order="ascending" />

Эта функция определена следующим образом в XPath spec :

Функция: string translate (string, string, string)

Функция translate возвращает первую строку аргумента с вхождениями символов во второй строке аргумента, замененными символом в соответствующей позиции в третьей строке аргумента.

0 голосов
/ 28 октября 2014

Как насчет <xsl:sort select="lower-case(sortOn)"/>?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...