Subject: RE: RFC: [xsl] Recursive Template Improvements/Suggestions ?? From: "Bovy, Stephen J" <STEPHEN.Bovy@xxxxxx> Date: Fri, 3 Jun 2005 13:05:32 -0400 |
Thanks every one for your help !! Here is my new condensed and improved version: <!-- recursive function to escape quote in --> <!-- javaScript string literal assignment --> <xsl:template name="repQuote"> <xsl:param name="tbef"/> <xsl:param name="taft"/> <xsl:choose> <xsl:when test="contains($taft,'"')"> <xsl:variable name="xx" select="concat(substring-before($taft,'"'),'\"')"/> <xsl:call-template name="repQuote"> <xsl:with-param name="tbef" select="concat($tbef,$xx)"/> <xsl:with-param name="taft" select="substring-after($taft,'"')"/> </xsl:call-template> </xsl:when> <xsl:when test="$taft=''"> bt("<xsl:value-of select="$tbef"/>"); </xsl:when> <xsl:otherwise> <xsl:variable name="xx" select="concat($tbef,$taft)"/> bt("<xsl:value-of select="$xx"/>"); </xsl:otherwise> </xsl:choose> </xsl:template> -----Original Message----- From: David Carlisle [mailto:davidc@xxxxxxxxx] Sent: Friday, June 03, 2005 2:13 AM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Re: RFC: [xsl] Recursive Template Improvements/Suggestions ?? <xsl:variable name="zz"> <xsl:value-of select="concat($xx,'\"')"/> </xsl:variable> Don't use xsl:variable with content like this unless you need to generate new nodes, this makes a result tree fragment with a root node with child a document node with string value the supplied string. That's a fairly expensive operation and when uou come to use it you use it as a string so it has to be cast back to a string. <xsl:variable name="zz" select="concat($xx,'\"')"/> is less to type and a lot more efficient as it just binds the variable directly to a string. In this case however you don't need variables at all <xsl:variable name="xx"> <xsl:value-of select="substring-before($taft,'"')"/> </xsl:variable> <xsl:variable name="yy"> <xsl:value-of select="substring-after($taft,'"')"/> </xsl:variable> <xsl:variable name="zz"> <xsl:value-of select="concat($xx,'\"')"/> </xsl:variable> <xsl:call-template name="repQuote"> <xsl:with-param name="tbef" select="concat($tbef,$zz)"/> <xsl:with-param name="taft" select="$yy"/> <xsl:with-param name="stop" select="0"/> </xsl:call-template> is <xsl:call-template name="repQuote"> <xsl:with-param name="tbef" select="concat($tbef,substring-before($taft,'"','\"'),'"' )"/> <xsl:with-param name="taft" select="substring-after($taft,'"')"/> <xsl:with-param name="stop" select="0"/> </xsl:call-template> David ________________________________________________________________________ This e-mail has been scanned for all viruses by Star. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk ________________________________________________________________________
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: RFC: [xsl] Recursive Template I, Bovy, Stephen J | Thread | [xsl] Saxon for XMetal, Mike Ferrando |
RE: [xsl] Saxon for windows?, Pieter Reint Siegers | Date | [xsl] Saxon for XMetal, Mike Ferrando |
Month |