Hi Mukul,
thanks a lot for your help. It works perfectly! Yesss... :-)
On Tue, 2004-08-03 at 06:15, Mukul Gandhi wrote:
> 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),$de
lim))"
> />
> </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. Gonalves"
> <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. Gonalves
> > <rui-l-goncalves@xxxxxxxxxxxxx>
> > PT Inovao
>
>
>
>
> __________________________________
> Do you Yahoo!?
> New and Improved Yahoo! Mail - Send 10MB messages!
> http://promotions.yahoo.com/new_mail
--
Rui Alberto L. GonC'alves <rui-l-goncalves@xxxxxxxxxxxxx>
PT InovaC'C#o
|