[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] replacing parts of a string


Subject: RE: [xsl] replacing parts of a string
From: "Jonny Pony" <jonnypony666@xxxxxxxxxxx>
Date: Thu, 15 Jan 2004 17:05:09 +0000

Hi,

forgot the previous mail:

How and where must I customize your template to pass only a string. Something like:

<xsl:call-template name="LongString">
<xsl:with-param name="stringIn"><xsl:value-of select="."/></xsl:with-param>
</xsl:call-template>

Thanks
Jonny



From: "Jonny Pony" <jonnypony666@xxxxxxxxxxx>
Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: RE: [xsl] replacing parts of a string
Date: Thu, 15 Jan 2004 16:48:01 +0000

Hi,

OK. Downloaded your files. Did the things you said.
Now call me dumb:
I don't know how to invoke your "template".

Let's say I have:
<hello>
<LongString>12rt,dsfg,dsfg,ewrt,wert,xcvbs,rwete,ehgfh,xxxxxasd,awersdf,dfgxvxcv</LongString>
<LongString>76rt,dsfg,dsfg,ewrt,wert,xcvbs,rwete,ehgfh,xxxxxasd,awersdf,dfgxvxcv</LongString>
<LongString>wert,ds4,dsfg,ewrt,wert,xcvbs,rwete,ehgfh,xxxxxasd,awersdf,dfgxvxcv</LongString>
<LongString>wert,d12,dsfg,ewrt,wert,xcvbs,rwete,ehgfh,xxxxxasd,awersdf,dfgxvxcv</LongString>
</hello>

What would I "do" in my xsl to invoke your "function"?
Sorry, but I have no clue.

Thanks
jonny

From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: RE: [xsl] replacing parts of a string Date: Thu, 15 Jan 2004 06:02:05 -0800 (PST)


> >  Is there a (string)-replace function in xsl. Couldn't find one.
>
> Other than translate(), no.
>
> >  My problem: I get something like this in xml:
> >  <LongString>wert,dsfg,dsfg,ewrt,wert,xcvbs,rwete,ehgfh,xxxxxas
> >  d,awersdf,dfgxvxcv</LongString>
> >
> >  I want to have a whitespace between the "," and the text.
>
> See the FAQ-you need to write a recursive template.

Or you will not have to write a recursive template (already written for
you) if you use the "str-map" template from FXSL.

This transformation:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:testmap="my:testmap"
exclude-result-prefixes="xsl testmap"
>
   <xsl:import href="str-map.xsl"/>

<xsl:output omit-xml-declaration="yes" indent="yes"/>

   <xsl:template match="LongString">
     <xsl:variable name="vTestMap"
      select="document('')/*/testmap:*[1]"/>
     <xsl:copy>
       <xsl:call-template name="str-map">
         <xsl:with-param name="pFun" select="$vTestMap"/>
         <xsl:with-param name="pStr" select="."/>
       </xsl:call-template>
     </xsl:copy>
   </xsl:template>

    <testmap:testmap/>
    <xsl:template match="testmap:*">
      <xsl:param name="arg1"/>

      <xsl:value-of select="$arg1"/>
      <xsl:if test="$arg1 = ','">
      <xsl:text> </xsl:text>
      </xsl:if>
    </xsl:template>

</xsl:stylesheet>

When applied on your source.xml:

<LongString>wert,dsfg,dsfg,ewrt,wert,xcvbs,rwete,ehgfh,xxxxxasd,awersdf,dfgxvxcv</LongString>

produces the desired output:

<LongString>wert, dsfg, dsfg, ewrt, wert, xcvbs, rwete, ehgfh, xxxxxasd,
awersdf, dfgxvxcv</LongString>


Dimitre Novatchev. FXSL developer,

http://fxsl.sourceforge.net/ -- the home of FXSL
Resume: http://fxsl.sf.net/DNovatchev/Resume/Res.html




__________________________________ Do you Yahoo!? Yahoo! Hotjobs: Enter the "Signing Bonus" Sweepstakes http://hotjobs.sweepstakes.yahoo.com/signingbonus

XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list


_________________________________________________________________
NEU: Polyphone Klingeltöne und farbige Logos für Ihr Handy! http://polyphonetoene.handy.msn.de Jetzt Handy aufpeppen!



XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list



_________________________________________________________________
Schluß mit Spam! http://www.msn.de/antispam/prevention/junkmailfilter Wir helfen Ihnen, unerwünschte E-Mails zu reduzieren.



XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list




Current Thread
Keywords
xsl