Re: [xsl] Special string manipulation

Subject: Re: [xsl] Special string manipulation
From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx>
Date: Sat, 8 Sep 2007 22:22:37 +0530
Hi Ken,
  Thanks for pointing the mistake. Below is the modified XSLT 2.0
solution, which works..

<?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:variable name="result">
     <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:variable>
   <xsl:value-of select="normalize-space($result)" />
 </xsl:template>

</xsl:stylesheet>

Though your solution is very concise, and I myself would prefer that.

On 9/4/07, G. Ken Holman <gkholman@xxxxxxxxxxxxxxxxxxxx> wrote:
> I believe the approach below adds an extra space at the end of the
> result ... not sure if that is acceptable to the original poster or
> not.  He does only mention splitting them, not suffixing them.
>
> I hope this helps.
>
> . . . . . . . . . . Ken
>
> At 2007-09-04 23:07 +0530, Mukul Gandhi 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
>
>
> --
> Upcoming public training: XSLT/XSL-FO Sep 10, UBL/code lists Oct 1
> World-wide corporate, govt. & user group XML, XSL and UBL training
> RSS feeds:     publicly-available developer resources and training
> G. Ken Holman                 mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
> Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
> Box 266, Kars, Ontario CANADA K0A-2E0    +1(613)489-0999 (F:-0995)
> Male Cancer Awareness Jul'07  http://www.CraneSoftwrights.com/s/bc
> Legal business disclaimers:  http://www.CraneSoftwrights.com/legal


-- 
Regards,
Mukul Gandhi

Current Thread