en minuscule le premier caractère d'une chaîne utilisant uniquement xslt 1.0
Question
J'ai vu patterns pour traduire une chaîne en minuscule (ou majuscule) à l'aide de la fonction de traduction pour les personnes bloquées à l'aide de xslt 1.0.
Existe-t-il un moyen élégant de simplement mettre la première lettre d’une chaîne en minuscule?
TestCase => testCase
La solution
Si votre chaîne figurait, par exemple, dans un attribut appelé nom
:
<xsl:value-of select="concat(translate(substring(@name, 1, 1), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), substring(@name, 2))"/>
Autres conseils
Vous devriez pouvoir combiner sous-chaîne . et concattez avec la traduction pour le faire à votre guise:
concat(translate(substring(s,1,1), $smallcase, $uppercase),substring(s,2))
Utilisez la fonction XPath translate
, après avoir séparé la chaîne en premier caractère et le reste. Cela nécessitera un XSLT un peu long utilisant plusieurs variables pour conserver les résultats intermédiaires.
XSLT a une fonction de sous-chaîne, vous pouvez donc utiliser ce modèle avec la fonction de sous-chaîne pour obtenir ce que vous voulez.