Subject: Re: [xsl] Special string manipulation From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx> Date: Tue, 4 Sep 2007 23:22:53 +0530 |
If you need an XSLT 1.0 solution, please try this.. <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="text" /> <xsl:variable name="caps" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" /> <xsl:template match="/"> <xsl:call-template name="walkString"> <xsl:with-param name="string" select="SomeTag" /> </xsl:call-template> </xsl:template> <xsl:template name="walkString"> <xsl:param name="string" /> <xsl:choose> <xsl:when test="contains($caps, substring($string,1,1))"> <xsl:text> </xsl:text><xsl:value-of select="substring($string,1,1)" /> <xsl:if test="not(substring($string,2) = '')"> <xsl:call-template name="walkString"> <xsl:with-param name="string" select="substring($string,2)" /> </xsl:call-template> </xsl:if> </xsl:when> <xsl:otherwise> <xsl:value-of select="substring($string,1,1)" /> <xsl:if test="not(substring($string,2) = '')"> <xsl:call-template name="walkString"> <xsl:with-param name="string" select="substring($string,2)" /> </xsl:call-template> </xsl:if> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet> On 9/4/07, Mukul Gandhi <gandhi.mukul@xxxxxxxxx> wrote: > With XSLT 2.0, you can do as following: > > <?xml version="1.0"?> > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> > > <xsl:output method="text" /> > > <xsl:template match="/"> > <xsl:analyze-string > select="SomeTag" > regex="[A-Z][a-z]*"> > > <xsl:matching-substring> > <xsl:value-of select="." /><xsl:text> </xsl:text> > </xsl:matching-substring> > <xsl:non-matching-substring> > <xsl:value-of select="." /><xsl:text> </xsl:text> > </xsl:non-matching-substring> > </xsl:analyze-string> > </xsl:template> > > </xsl:stylesheet> > > On 9/4/07, Meyer, Roland 1. (NSN - DE/Germany - MiniMD) > <roland.1.meyer@xxxxxxx> wrote: > > Hi, > > > > my XML file contains single strings with upper and lower letters and I > > need to split them into several words, always just before the first > > upper letter starts. > > > > Example: > > <SomeTag>thisTextNeedToBeSplit</SomeTag> > > > > My output should look like: > > > > this Text Need To Be Split > > > > Is there any possibility to do this with XSL methods? > > > > > > Best Regards, > > Roland -- Regards, Mukul Gandhi
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Special string manipulati, Mukul Gandhi | Thread | Re: [xsl] Special string manipulati, G. Ken Holman |
Re: [xsl] Special string manipulati, Mukul Gandhi | Date | Re: [xsl] Special string manipulati, G. Ken Holman |
Month |