Ответ 1
Если ваша строка была, например, в атрибуте с именем name
:
<xsl:value-of select="concat(translate(substring(@name, 1, 1), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), substring(@name, 2))"/>
Я видел шаблоны для перевода строки в нижний (или верхний регистр), используя функцию перевода для людей, застрявших с использованием xslt 1.0.
Есть ли элегантный способ просто сделать первую букву строки в нижнем регистре?
TestCase => testCase
Если ваша строка была, например, в атрибуте с именем name
:
<xsl:value-of select="concat(translate(substring(@name, 1, 1), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), substring(@name, 2))"/>
Вы можете объединить substring и concat с переводом, чтобы сделать это так:
concat(translate(substring(s,1,1), $smallcase, $uppercase),substring(s,2))
Используйте функцию XPath translate
, разделив строку на первый символ, а остальные. Для выполнения промежуточных результатов потребуется несколько длинных XSLT с использованием нескольких переменных.
XSLT имеет подстрочную функцию, поэтому вы можете использовать этот шаблон с помощью функции substring, чтобы получить то, что вы хотите.