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