Как использовать функцию нижнего регистра () в XSLT 2.0?

В небольшом проекте преобразования XML, над которым я работаю, я могу использовать функцию XSLT 1.0 translate() для преобразования в нижний или верхний регистр, как это предлагается в сообщениях типа this one, чтобы что-то вроде следующего работало нормально:

<xsl:variable name="lowercase" select="'abcdefghijklmnopqrstuvwxyz'" />
<xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
<xsl:value-of select="translate(@value, $uppercase, $lowercase)" />

Но на самом деле я бы предпочел использовать lower-case() функцию XSLT 2.0, но для следующих целей:

<xsl:value-of select="lower-case(@value)" />

... Chrome ничего не выводит, а Firefox получает «неизвестную» ошибку 0x8060000e, которая, возможно, предполагает, что функция lower-case() не распознается. Возможно, моя проблема связана со строкой объявления XML ?:

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

... или мне что-то еще не хватает?


person ewall    schedule 17.08.2011    source источник
comment
Возможно, ни Chrome, ни Firefox не поддерживают XSLT 2?   -  person Jim Garrison    schedule 17.08.2011
comment
@Jim Garrison Ха ... Я просто предположил, что сегодняшние быстро меняющиеся браузеры поддерживают стандарт 4-летней давности, но по-видимому, нет. В любом случае, если вы хотите превратить свой комментарий в ответ, я дам вам за это очки. Спасибо!   -  person ewall    schedule 18.08.2011


Ответы (1)


Ни Chrome, ни Firefox не поддерживают XSLT2, несмотря на то, что это стандарт 4-летней давности. См., Например, эту ошибку Firefox, которая исчезает с 2008 года.

person Jim Garrison    schedule 18.08.2011
comment
Еще раз спасибо за подсказку. В этом проекте я все равно использовал Saxon для тяжелой работы, но мне не хватает удобства разработки в браузер. - person ewall; 18.08.2011
comment
XSLT 2 с Saxon теперь можно использовать в браузере также с процессором Saxon-CE. - person pgfearo; 13.07.2012