XSL テンプレートを使用して、2 番目の文字列の最初の文字を小文字に変更できますか? または、HTML で 2 番目の文字列の最初の文字を小文字に変更する方法はありますか? 最初の文字の疑似コードは、セレクターの対象にしかできないため、機能しません。
すなわち:
XML の場合:
「Name」、
「何かの何かを返します。」
Need (HTML):
Nameは何かの何かを返します。
この XSLT 変換:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/*">
<xsl:variable name="v1stchar" select=
"substring(translate(s[2],translate(s[2],'ABCDEFGHIJKLMNOPQRSTUVWXYZ', ''),''),1,1)"/>
<xsl:value-of select=
"concat(s[1],
' ',
substring-before(s[2], $v1stchar),
translate($v1stchar,'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'),
substring-after(s[2], $v1stchar)
)
"/>
</xsl:template>
</xsl:stylesheet>
この XML ドキュメントに適用した場合:
<t>
<s>Name</s>
<s>*R*eturns the something of the something.</s>
</t>
必要な正しい結果が生成されます。
Name *r*eturns the something of the something.
単一の XPath 式でもこれを行うことは可能ですが、非常に扱いにくいように見えます。