xsl 2.0を使用して、すべての大文字のテキストを、各ノードの大文字のテキストの最初の文字のみを持つように変換しようとしています。それらは、多数の可能な子要素です。
<text> text text text
<head>BLAH <unkownTag>BLAH</unkownTag> BLAH </head>
</text>
これを次のように変換したい
<text> text text text
<head>Blah <unkownTag>Blah</unkownTag> Blah </head>
</text>
私が来た最も近いのは
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="head/text()">
<xsl:value-of select="concat(upper-case(substring(.,1,1)),lower-case(substring(.,2)))"/>
</xsl:template>
それは私に結果を与えます
<text> text text text
<head>Blah <unkownTag>BLAH</unkownTag> blah </head>
</text>
頭のすべての子ノードで小文字の変換を実行するにはどうすればよいですか?