Subject: Re: [xsl] Slow XSLT From: Cleyton Jordan <cleytonjordan@xxxxxxxxxxx> Date: Sun, 2 Mar 2008 21:45:47 +0000 (GMT) |
Hi Manfred, Thank you for your help. I trully appreciate it. I am trying to code the xslt stylesheet using your suggestion (using templates to take care of the hierarchy) but I have to confess that I am a bit lost. I was wondering if you could have a look at the stylesheet below and make the necessary changes. Also, I have not tried your simpler approach yet because I am trying to understand this one first. As for the Javascript, I will create a test harness to test all the stylesheets and let you know the one with the best performance. Cheers <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> <xsl:param name="axisHeads" select="'false'" /> <xsl:output indent="yes"/> <xsl:variable name="msrs"> <xsl:choose> <xsl:when test="/Reports/Report/Measures/Measure"> <xsl:value-of select="count(/Reports/Report/Measures/Measure)"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="1"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:template match="Reports"> <html> <body> <xsl:apply-templates/> </body> </html> </xsl:template> <xsl:template match="Report" > <!-- Top --> <div id="g1" style="position: absolute; top: 0px; left: 0px; width: 400px; height: 12px"> <table class="grdTop" border="0" cellspacing="1" cellpadding="0"> <tbody> <xsl:apply-templates select="Columns" /> </tbody> </table> </div> </xsl:template> <xsl:template match="Columns"> <xsl:apply-templates mode="ColGrp"/> </xsl:template> <!--processing for the innermost ColGrp here--> <xsl:template match="ColGrp[Col]" mode="ColGrp"> </xsl:template> <xsl:template match="ColGrp" mode="ColGrp"> <!--processing here (you can always test the depth with count(ancestor::ColGrp))--> </xsl:template> <!--plus one for Col:--> <xsl:template match="Col" mode="ColGrp"> </xsl:template> <xsl:template match="Measures"> <xsl:param name="pos" /> <xsl:for-each select="Measure"> <xsl:variable name="mPos"> <xsl:value-of select="position()" /> </xsl:variable> <td align="center"> <nobr> <div class="action" style="width:90px; overflow:none" onclick="sortFullGrid({$mPos}, {$pos}, '{@class}')"> <xsl:value-of select="@heading"/> </div> </nobr> </td> </xsl:for-each> </xsl:template> </xsl:stylesheet> ========================================= --- Manfred Staudinger <manfred.staudinger@xxxxxxxxx> wrote: > On 02/03/2008, Manfred Staudinger > <manfred.staudinger@xxxxxxxxx> wrote: > > I would propose a slightly different approach: > > > > <xsl:for-each > select="/Reports/Report/Columns/ColGrp"> > > <xsl:apply templates mode="ColGrp"/> > should read > <xsl:apply-templates mode="ColGrp"/> > > </xsl:for-each> > > passing the parameters needed for your processing > and using only two > > templates for ColGrp: one for the innermost > ColGrp, and one for the > > others > > <xsl:templates match="ColGrp[Col]" mode="ColGrp"> > > processing for the innermost ColGrp here > add the apply-templates here: > <xsl:apply-templates mode="ColGrp"/> > > </xsl:for-each> > > Manfred > > ___________________________________________________________ Rise to the challenge for Sport Relief with Yahoo! For Good http://uk.promotions.yahoo.com/forgood/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Slow XSLT, Manfred Staudinger | Thread | Re: [xsl] Slow XSLT, Manfred Staudinger |
Re: [xsl] Use of data() function, Florent Georges | Date | Re: [xsl] Slow XSLT, Manfred Staudinger |
Month |