This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: breaking display data into tables
- To: <xsl-list at lists dot mulberrytech dot com>
- Subject: RE: [xsl] breaking display data into tables
- From: "Michael Kay" <mhkay at iclway dot co dot uk>
- Date: Fri, 13 Jul 2001 11:54:28 +0100
- Reply-To: xsl-list at lists dot mulberrytech dot com
What processor are you using:
<xsl:if test="position(//BILLING_ITEM) <= count(//BILLING_ITEM)">
is an error that should be reported. The position() function takes no
arguments.
I don't know what you think this means; but in any event, the first thing
I'd suggest is to put count(//BILLING_ITEM) into a global variable - if the
processor is allowing sloppy syntax through, then it probably isn't doing
anything very clever like spotting common subexpressions.
Mike Kay
Software AG
> -----Original Message-----
> From: owner-xsl-list@lists.mulberrytech.com
> [mailto:owner-xsl-list@lists.mulberrytech.com]On Behalf Of Devan
> Govender
> Sent: 13 July 2001 11:04
> To: xsl-list@lists.mulberrytech.com
> Subject: [xsl] breaking display data into tables
>
>
> <xsl:template match="BILLING">
> <xsl:call-template name="BILLING_TEMP">
> <xsl:with-param name="counter" select="1"/>
> <xsl:with-param name="counting" select="10"/>
> <xsl:with-param name="lastpos" select="0"/>
> </xsl:call-template>
> </xsl:template>
>
> <xsl:template name="BILLING_TEMP">
> <xsl:param name="counter"/>
> <xsl:param name="counting"/>
> <xsl:param name="lastpos"/>
> <xsl:variable name="thebillingcount">
>
> </xsl:variable>
> <xsl:if test="position(//BILLING_ITEM) <= count(//BILLING_ITEM)">
> <table width="817" BORDER="1" CELLSPACING="0" CELLPADDING="0"
> bordercolor="#F0C0C0">
> <xsl:for-each
> select="BILLING_ITEM[position(//BILLING_ITEM) <=
> $counting and position(//BILLING_ITEM) > $lastpos and
> position(//BILLING_ITEM) <= count(//BILLING_ITEM)]">
> <tr>
> <td WIDTH="191"> <xsl:value-of
> select="count(//BILLING_ITEM)"/> </td>
> <td WIDTH="191"> <xsl:value-of
> select="position(//BILLING_ITEM)"/> </td>
> <td WIDTH="191"> <xsl:value-of select="$lastpos"/> </td>
> <td WIDTH="62"><font face="Verdana" size="1"> <xsl:value-of
> select="EMPLOYEE_NO"/> </font></td>
> <td WIDTH="89"><font face="Verdana" size="1"> <xsl:value-of
> select="CONTRACT"/> </font></td>
> <td WIDTH="191"><font face="Verdana" size="1"
> align="CENTER">
> <xsl:value-of select="MEMBER_NAME"/> </font></td>
> </tr>
> </xsl:for-each>
> </table>
>
> <xsl:if test="position(//BILLING_ITEM)+1 <=
> count(//BILLING_ITEM)">
> <xsl:call-template name="BILLING_TEMP">
> <xsl:with-param name="counter" select="1"/>
> <xsl:with-param name="counting" select="$counting + 10"/>
> <xsl:with-param name="lastpos" select="$counting"/>
> </xsl:call-template>
> </xsl:if>
> </xsl:if>
> </xsl:template>
>
>
> The above code breaks my xml data into tables of 10 items each.
> It is however very slow.
> Any ideas on how I can improve performance ???
> --
> "I count religion but a childish toy, and hold there is no sin but
> ignorance." -Christopher Marlowe, 1592
>
> "HEAVEN does'nt want me & HELL is afraid I'll take over"
>
> DEVAN GOVENDER
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list