यहाँ इस सवाल का एक और अधिक प्रत्यक्ष जवाब है। Bastianneu का जवाब निश्चित रूप से आपको सही रास्ते पर रखता है, लेकिन यदि आप एक टेम्पलेट चाहते हैं जो विशेष रूप से CamelCase तारों को व्यक्तिगत शब्दों में तोड़ देता है, तो यह आपके लिए यह करेगा।
<xsl:template name="breakIntoWords">
<xsl:param name="string" />
<xsl:choose>
<xsl:when test="string-length($string) < 2">
<xsl:value-of select="$string" />
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="breakIntoWordsHelper">
<xsl:with-param name="string" select="$string" />
<xsl:with-param name="token" select="substring($string, 1, 1)" />
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="breakIntoWordsHelper">
<xsl:param name="string" select="''" />
<xsl:param name="token" select="''" />
<xsl:choose>
<xsl:when test="string-length($string) = 0" />
<xsl:when test="string-length($token) = 0" />
<xsl:when test="string-length($string) = string-length($token)">
<xsl:value-of select="$token" />
</xsl:when>
<xsl:when test="contains('ABCDEFGHIJKLMNOPQRSTUVWXYZ',substring($string, string-length($token) + 1, 1))">
<xsl:value-of select="concat($token, ' ')" />
<xsl:call-template name="breakIntoWordsHelper">
<xsl:with-param name="string" select="substring-after($string, $token)" />
<xsl:with-param name="token" select="substring($string, string-length($token), 1)" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="breakIntoWordsHelper">
<xsl:with-param name="string" select="$string" />
<xsl:with-param name="token" select="substring($string, 1, string-length($token) + 1)" />
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>