[xsl] Reusing templates and params

Subject: [xsl] Reusing templates and params
From: "Carl Radley" <Carl.Radley@xxxxxxxxxxx>
Date: Wed, 14 May 2008 11:16:29 +0100
Hi,
I'm having a problem trying to pass values between recursive templates.
Using XSLT 1.0 and tried to keep it a brief as possible.
I'm publishing "bits" of values then passing the remainder to another template
to handle further, possibly passing back and forth a few times.

<!-- Start of fragment -->
<xsl:template name="A">
    <xsl:param name="valueA" />

    <!-- Do stuff ($anotherValue takes "bits" of $valueA) -->

    <xsl:if test="string-length($anotherValue) &gt; 0">
	<xsl:call-template name="B">
	    <xsl:with-param name="valueB" select="substring($anotherValue,2)" />
	</xsl:call-template>
    </xsl:if>
</xsl:template>

<xsl:template name="B">
    <xsl:param name="valueB" />

    <!-- Do stuff ($anotherValue takes "bits" of $valueB) -->

    <xsl:if test="string-length($anotherValue) &gt; 0">

	<!-- Problem area - can test that $anotherValue has many characters in it but
template "A" fails the xsl:if -->

	<xsl:call-template name="A">
	    <xsl:with-param name="valueA" select="substring($anotherValue,2)" />
	</xsl:call-template>
    </xsl:if>
</xsl:template>
<!-- End of fragment -->

Thanks in advance,
Carl


----------------------------------------------------------------
This e-mail (which includes any files attached to it) is not
contractually binding on its own, it is intended solely for
the named recipient and may contain CONFIDENTIAL, legally
privileged or trade secret information protected by law.
If you have received this message in error please delete it
and notify us immediately by telephoning +44(0)2476421213.
If you are not the intended recipient you must not use, disclose,
distribute, reproduce, retransmit, retain or rely on any
information contained in this e-mail. Please note that Severn
Trent Laboratories Limited reserve the right to monitor email
communications in accordance with applicable law and regulations.

To the extent permitted by law, neither Severn Trent Laboratories
Limited or any of its subsidiaries, nor any employee, director
or officer thereof, accepts any liability whatsoever in relation
to this e-mail including liability arising from any external breach
of security or confidentiality or for virus infection or for statements
made by the sender as these are not necessarily made on behalf of
Severn Trent Laboratories Limited.

Severn Trent Laboratories Limited is a limited company registered in
England and Wales under registered number 2148934 with its registered
office at 2297 Coventry Road, Birmingham B26 3PU.
-----------------------------------------------------------------------

Current Thread