Re: [xsl] Slow XSLT

Subject: Re: [xsl] Slow XSLT
From: Cleyton Jordan <cleytonjordan@xxxxxxxxxxx>
Date: Mon, 3 Mar 2008 22:50:13 +0000 (GMT)
Hi Manfred,

Thanks again. I will debug the xslt to understand
exactly what it is doing. Then I will write the
javascript test harness to test the speed and let you
know the outcome.

Cheers

C

--- Manfred Staudinger <manfred.staudinger@xxxxxxxxx>
wrote:

> Hi,
> 
> In addition to what Michael already discussed:
> 
> On 03/03/2008, Cleyton Jordan
> <cleytonjordan@xxxxxxxxxxx> wrote:
> > Where is this template being called from?
> >
> >  <xsl:template match="Col">
> >   <td colspan="{$msrs}">
> >    <div><xsl:value-of select="@heading"/></div>
> >   </td>
> >  </xsl:template>
> It's called from the "apply-set" template
> 	<tr>
> 		<xsl:apply-templates select="$set"/>
> 	</tr>
> With each recursion, a new $set variable is used,
> which gets its
> initial value here:
> 	<xsl:with-param name="set" select="$set/*"/>
> The new set of nodes is selected to contain all the
> child elements
> (note the /*) of the nodes in the current set. On
> the very last
> recursion $set contains the "Col" elements and those
> match the
> template in question.
> The fact that there are no more child elements is
> used to stop the
> recursion and get the call closed. If you look at
> the point in
> "apply-set" where we called it again
> 	<xsl:call-template name="apply-set">
> 		<xsl:with-param name="set" select="$set/*"/>
> 	</xsl:call-template>
> and where we return from the "active" call, you see
> that "apply-set"
> has already done all it should do, so closing it
> silently.
> 
> Hope this helps,
> 
> Manfred
> 
> 
> On 03/03/2008, Cleyton Jordan
> <cleytonjordan@xxxxxxxxxxx> wrote:
> > Hi Michael,
> >
> >  Thanks for your input.
> >
> >  I will debug the xslt and see if I can undertand
> what
> >  is going on.
> >
> >  Cheer
> >
> >
> >  C
> >
> >
> >  --- Michael Ludwig <mlu@xxxxxxxxxxxxx> wrote:
> >
> >  > 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
> >  >
> >  >
> >
> >
> >
> >
> >
> >
>
___________________________________________________________
> >  NEW Yahoo! Cars - sell your car and browse
> thousands of new and used cars online!
> http://uk.cars.yahoo.com/
> 
> 



		
___________________________________________________________ 
To help you stay safe and secure online, we've developed the all new Yahoo! Security Centre. http://uk.security.yahoo.com

Current Thread