Subject: RE: [xsl] Splitting an +attribute+ string From: "Andrew Welch" <ajwelch@xxxxxxxxxxxxxxx> Date: Thu, 13 Jan 2005 11:24:37 -0000 |
> I wonder if anybody could quickly profer some advice on this. > I may well be wrong, but does xsl treat attribute strings > different to > normal text nodes when it comes to the "contains()" function. > I may well > also be gibbering. I've got my mind into a muddle on this one. > > Problem : To take an attribute in the form of a comma > delineated string > (e.g. <gui onShow="apple,pear,banana" > onHide="black,white,grey"/>) and > to covert the attributes into javascript array syntax (i.e. > ['apple','pear','banana'] etc.). > > Strategy : "Just" replace the commas with ',' and top and tail the > output string with [' and '] > > Code : > <!--To convert onShow--> > <xsl:call-template name="commaDelineate"><xsl:with-param name="str" > select="@onShow"/></xsl:call-template> > > <xsl:template name="commaDelineate"> > <xsl:param name="str"/> > <xsl:when test="contains($str,',')"> > <xsl:value-of select="substring-before($str,',')"/>',' > <xsl:call-template name="commaDelineate"> > <xsl:with-param name="str" > select="substring-after($str,',')"/> > </xsl:call-template> > </xsl:when> > </xsl:template> > > Frustration : The errors seem to be generated around the "when" > statement. Unfortunately I can't provide any error output > because this > is being done inside a PHP script. You are missing <xsl:choose> and also: <xsl:otherwise> <xsl:value-of select="$str"/> </xsl:otherwise> to get the last part of the string? Don't kick yourself too hard :) cheers andrew
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Splitting an +attribute+ , ben senior | Thread | [xsl] Transforming SOAP with Attach, Bhaskar, Rajan |
Re: [xsl] Splitting an +attribute+ , ben senior | Date | RE: [xsl] Adding CDATA to the trans, Bhaskar, Rajan |
Month |