Subject: [xsl] Transforming SOAP with Attachments From: "Bhaskar, Rajan" <RBhaskar@xxxxxxx> Date: Thu, 13 Jan 2005 10:12:55 -0500 |
Hi, I have a SOAP with Attachment which needs to be transformed to a different SOAP with Attachment. However when SOAP with Attachment is received it is not a well-form xml. It should basically be separated as SOAPEnvelope and Attachment content both being well-formed xml. I want to know if i can use one xsl file taking 2 inputs from SOAPEnvelope and Attachment as separate source streams and get a single XML taking some of the values from the Envelope. Thanks, Rajan -----Original Message----- From: Andrew Welch [mailto:ajwelch@xxxxxxxxxxxxxxx] Sent: Thursday, January 13, 2005 6:25 AM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: RE: [xsl] Splitting an +attribute+ string > 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+ , Andrew Welch | Thread | [xsl] alternative to namespace exma, dmitrik |
RE: [xsl] XSL Transformation overhe, Bhaskar, Rajan | Date | Re: [xsl] XSL Transformation overhe, Colin Paul Adams |
Month |