Subject: Re: [xsl] how to replace a part of a string with a newline?? From: Mukul Gandhi <mukul_gandhi@xxxxxxxxx> Date: Tue, 13 Jul 2004 01:57:39 -0700 (PDT) |
Hi Varun, This stylesheet does it. 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="/s"> <xsl:call-template name="replace-string"> <xsl:with-param name="str" select="." /> <xsl:with-param name="delim" select="'__OPT__'" /> <xsl:with-param name="newdelim" select="':'" /> </xsl:call-template> </xsl:template> <xsl:template name="replace-string"> <xsl:param name="str" /> <xsl:param name="delim" /> <xsl:param name="newdelim" /> <xsl:if test="string-length(substring-before($str,$delim)) = 0"> <xsl:value-of select="$str" /> </xsl:if> <xsl:if test="string-length(substring-before($str,$delim)) > 0"> <xsl:value-of select="substring-before($str,$delim)" /><xsl:value-of select="$newdelim" /> </xsl:if> <xsl:if test="string-length(substring-after($str,$delim)) > 0"> <xsl:call-template name="replace-string"> <xsl:with-param name="str" select="substring-after($str,$delim)" /> <xsl:with-param name="delim" select="$delim" /> <xsl:with-param name="newdelim" select="$newdelim" /> </xsl:call-template> </xsl:if> </xsl:template> </xsl:stylesheet> for e.g. when it is applied to XML <?xml version="1.0"?> <s>Importer__OPT__Trading Company__OPT__Service Provider</s> it produces output Importer:Trading Company:Service Provider Regards, Mukul --- Varun Suri <varunsuri@xxxxxxxxxxxxxxx> wrote: > Hi > > Ive got this string : > > Importer__OPT__Trading Company__OPT__Service > Provider > > How do i make it equivalent to > - Importer > - Trading Company > - Service Provider > > > Ive tried using translate function, but it replaces > all instances of the > letters O,P,T as well.I did something like: > > translate(text(),'__OPT__',':') > > It gives the following output is Importer:rading > Company:Service rovider > which i dont want. > > Any easy way to do it?? > > Thanks in advance > Regards > Varun __________________________________ Do you Yahoo!? Yahoo! Mail - 50x more storage than other providers! http://promotions.yahoo.com/new_mail
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] how to replace a part of a st, Varun Suri | Thread | Re: [xsl] how to replace a part of , Varun Suri |
RE: [xsl] Variables, Michael Kay | Date | RE: [xsl] How to select a document , Michael Kay |
Month |