Re: [xsl] Slow XSLT

Subject: Re: [xsl] Slow XSLT
From: Michael Ludwig <mlu@xxxxxxxxxxxxx>
Date: Mon, 03 Mar 2008 20:44:38 +0100
Cleyton Jordan schrieb:
Hi Manfread,

I truly appreciate your help. You are real star :)

I have just seen your post and before I try your
changes I would like to ask you what this line does
i.e. which template does it call?

<xsl:apply-templates select="$set"/>

It "calls" whatever matches the contents of $set. What is in $set depends on the context. At the place you extracted this line from, a template by the name "apply-set", there is an xsl:param named "set". The template "apply-set" is indeed called (using xsl:call-template), as it is a named template. Other templates are matching templates - these go without names. They are applied to nodes (using xsl:apply-templates) based on whether or not they match.

Where is this template being called from?

<xsl:template match="Col">
  <td colspan="{$msrs}">
   <div><xsl:value-of select="@heading"/></div>
  </td>
</xsl:template>

Incidentally, it is "called", or rather applied, by the xsl:apply-templates above that has caught your intention. It may not be obvious at first glance, but it happens in recursion. See the following snippet from Manfred's example.

		<xsl:when test="$set/*">
			<xsl:call-template name="apply-set">
				<xsl:with-param name="set" select="$set/*"/>
			</xsl:call-template>
		</xsl:when>

Michael


Current Thread