Нижний регистр - первый символ строки с использованием только xslt 1.0

Я видел шаблоны для перевода строки в нижний (или верхний регистр), используя функцию перевода для людей, застрявших с использованием xslt 1.0.

Есть ли элегантный способ просто сделать первую букву строки в нижнем регистре?

TestCase => testCase

Ответ 1

Если ваша строка была, например, в атрибуте с именем name:

<xsl:value-of select="concat(translate(substring(@name, 1, 1), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), substring(@name, 2))"/>

Ответ 2

Вы можете объединить substring и concat с переводом, чтобы сделать это так:

concat(translate(substring(s,1,1), $smallcase, $uppercase),substring(s,2))

Ответ 3

Используйте функцию XPath translate, разделив строку на первый символ, а остальные. Для выполнения промежуточных результатов потребуется несколько длинных XSLT с использованием нескольких переменных.

Ответ 4

XSLT имеет подстрочную функцию, поэтому вы можете использовать этот шаблон с помощью функции substring, чтобы получить то, что вы хотите.