2009-10-14 10 views
6

मैं एक साधारण स्ट्रिंग है के बाद के बाद कहते हैं:XSLT - अंतरिक्ष जोड़े लोअरकेस अपरकेस अक्षर

Nice Weather 
:

NiceWeather 

मैं के बीच 'ई' और 'डब्ल्यू' एक अंतरिक्ष का निर्माण करने के सम्मिलित करना चाहते हैं

क्या कोई ऐसा फ़ंक्शन है जिसका उपयोग मैं अंतरिक्ष को रखने के लिए कर सकता हूं (एक्सएसएलटी 1.0)?

उत्तर

6

यहाँ इस सवाल का एक और अधिक प्रत्यक्ष जवाब है। Bastianneu का जवाब निश्चित रूप से आपको सही रास्ते पर रखता है, लेकिन यदि आप एक टेम्पलेट चाहते हैं जो विशेष रूप से CamelCase तारों को व्यक्तिगत शब्दों में तोड़ देता है, तो यह आपके लिए यह करेगा।

<xsl:template name="breakIntoWords"> 
    <xsl:param name="string" /> 
    <xsl:choose> 
    <xsl:when test="string-length($string) &lt; 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> 
संबंधित मुद्दे