Any suggestions for improvement would be greatly appreciated !!!
<script tag >
var btxt = ""; // frame 3 table body text
function bt ( tg ) { btxt += tg; } // concatenate text function
// write table body frame 3
function body ( ) {
bt('<html> ');
( ... )
< apply templates >
( ... )
return btxt;
} // end of table body frame 3
<end script tag>
<xsl:template match="/*/*/*" >
bt('<td align="center" nowrap="nowrap"> ');
<xsl:call-template name="repQuote">
<xsl:with-param name="tbef" select="string('')"/>
<xsl:with-param name="taft" select="."/>
<xsl:with-param name="stop" select="0"/>
</xsl:call-template>
bt('</td> ');
</xsl:template>
Here is my XSL recursive template function:
<!-- recursive function to escape quote in -->
<!-- javaScript string literal assignment -->
<xsl:template name="repQuote">
<xsl:param name="tbef"/>
<xsl:param name="taft"/>
<xsl:param name="stop"/>
<xsl:choose>
<xsl:when test="$stop=0">
<xsl:choose>
<xsl:when test="contains($taft,'"')">
<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>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="repQuote">
<xsl:with-param name="tbef" select="concat($tbef,$taft)"/>
<xsl:with-param name="taft" select="string('')"/>
<xsl:with-param name="stop" select="1"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
bt("<xsl:value-of select="$tbef"/>");
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Any suggestions for improvement would be greatly appreciated !!!
-----Original Message-----
From: JBryant(_at_)s-s-t(_dot_)com [mailto:JBryant(_at_)s-s-t(_dot_)com]
Sent: Thursday, June 02, 2005 2:43 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Re:[xsl] Recursive Template ??
If you dig around in the archives, you'll find oodles of them.
The general principle works like this:
<xsl:template name="someTemplate">
<xsl:param name="someParam"/>
<!-- do some processing -->
<xsl:if test="not(someStopCondition)"
<xsl:call-template name="someTemplate">
<xsl:with-param name="someParam" select="someValue"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
Endless variations exist, but they all come down to the following
proposition: recuse as many times as needed until some stop condition is
met.
HTH
Jay Bryant
Bryant Communication Services
(presently consulting at Synergistic Solution Technologies)
"Bovy, Stephen J" <STEPHEN(_dot_)Bovy(_at_)ca(_dot_)com>
06/02/2005 04:32 PM
Please respond to
xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
To
<xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
cc
Subject
Spam:[xsl] Recursive Template ??
Is it possible to create a "recursive" template
that works in the same way as a recursive function call ???
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--