Subject: Re: [xsl] Splitting string From: Mukul Gandhi <mukul_gandhi@xxxxxxxxx> Date: Mon, 2 Aug 2004 22:15:13 -0700 (PDT) |
Hi Rui, Please try this XSL. It uses a recursive template. <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="text" /> <xsl:template match="/root"> <xsl:call-template name="tokenise"> <xsl:with-param name="str" select="string" /> <xsl:with-param name="delim" select="'/'" /> <xsl:with-param name="prev" select="''" /> </xsl:call-template> </xsl:template> <xsl:template name="tokenise"> <xsl:param name="str" /> <xsl:param name="delim" /> <xsl:param name="prev" /> <xsl:choose> <xsl:when test="substring-after(substring-after($str,$delim),$delim) != ''"> <xsl:value-of select="$prev" /><xsl:value-of select="$delim" /><xsl:value-of select="substring-before(substring-after($str,$delim),$delim)" /> <xsl:text>
</xsl:text> <xsl:call-template name="tokenise"> <xsl:with-param name="str" select="concat($delim,substring-after(substring-after($str,$delim),$delim))" /> <xsl:with-param name="delim" select="$delim" /> <xsl:with-param name="prev" select="concat($prev,$delim,substring-before(substring-after($str,$delim),$delim))" /> </xsl:call-template> </xsl:when> <xsl:when test="substring-after(substring-after($str,$delim),$delim) = ''"> <xsl:value-of select="$prev" /><xsl:value-of select="$str" /> </xsl:when> </xsl:choose> </xsl:template> </xsl:stylesheet> for e.g. when it is applied to XML <?xml version="1.0"?> <root> <string>/this/is/a/test</string> </root> it produces output - /this /this/is /this/is/a /this/is/a/test Regards, Mukul --- "Rui Alberto L. Gongalves" <rui-l-goncalves@xxxxxxxxxxxxx> wrote: > Hi all, > I have a string like: > /this/is/a/test > > and I need to create a template that will output: > /this > /this/is > /this/is/a > /this/is/a/test > > I think this is not so simple as it looks at first > glance. > Does anyone have an idea how to solve this problem? > Thanks for any help. > > Rui > -- > Rui Alberto L. Gongalves > <rui-l-goncalves@xxxxxxxxxxxxx> > PT Inovagco __________________________________ Do you Yahoo!? New and Improved Yahoo! Mail - Send 10MB messages! http://promotions.yahoo.com/new_mail
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Splitting string, Michael Kay | Thread | Re: [xsl] Splitting string, Rui Alberto L. |
Re: [xsl] xsltproc complains about , M. David Peterson | Date | [xsl] Checking if node has data, Subbiah |
Month |