Re: AW: [xsl] simple conditional looping

Subject: Re: AW: [xsl] simple conditional looping
From: xptm@xxxxxxx
Date: Mon, 16 Aug 2004 18:12:15 +0100
I mean, i'm assuming Keyur want no more and no less than 50 lines per page,
and
maybe it's not the case...

 > > > >In my printer friendly stylesheet I need to display minimum 50 lines.

If there can be 50+ lines, than your solution is 100% ok...

Citando xptm@xxxxxxx:

> Yes, but if you have more than 50 order, the second line of your solution
> (<xsl:apply-templates select="order"/>) will give more than 50 rows on the
> output, thus giving troubles...
>
>
> > > <xsl:template match="orders">
> > >    <xsl:apply-templates select="order"/>
> > >    <xsl:call-template name="write-blanks">
> > >      <xsl:with-param name="counter" select="50 - count(order)"/>
> > >    </xsl:call-template>
> > > </xsl:template>
>
> Citando Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>:
>
> > At 12:19 PM 8/16/2004, you wrote:
> > >But that will have troubles is there is more than 50 order...
> >
> > Not if you construct the recursive template correctly.
> >
> > Passing it a negative number as a parameter (let's say you have 55
orders:
> > the parameter passed will be (50 - 55) = -5), you can easily "fall
through"
> > and choose not to emit output or recurse:
> >
> > <xsl:template name="write-blanks">
> >    <xsl:param name="counter" select="0"/>
> >    <xsl:if test="$counter > 0">
> >       ... write your blank line here ...
> >      <xsl:call-template name="write-blanks">
> >        <xsl:with-param name="counter" select="$counter - 1"/>
> >      </xsl:call-template>
> >    </xsl:if>
> > </xsl:template>
> >
> > Cheers,
> > Wendell
> >
> > >Citando Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>:
> > >
> > > > At 09:03 AM 8/16/2004, Keyur wrote:
> > > > >my xml code is as follows:
> > > > ><orders>
> > > > ><order id="1">ABC</order>
> > > > ><order id="2">XYZ</order>
> > > > ><order id="3">QWE</order>
> > > > ></orders>
> > > > >
> > > > >The orders tag will grow as and when new orders are added. Now in my
> > > > >stylesheet (PRINTER FRIENDLY) I need to display the orders as below.
> > > > >
> > > > >ORDERS:
> > > > >1. ABC
> > > > >2. XYZ
> > > > >3. QWE
> > > > >4. ________
> > > > >5. ________
> > > > >6. ________
> > > > >.
> > > > >.
> > > > >.
> > > > >.
> > > > >50. _______
> > > > >
> > > > >In my printer friendly stylesheet I need to display minimum 50
lines.
> If
> > > > >there are less then 50 orders then all the remaining lines will be
> blank
> > > > >with an underline. The transformed page (this xml and xsl will be
> > > > >transformed using ASP.NET) will be printed and the blank lines will
be
> > > > >filled manually with a pen and Signed.
> > > > >
> > > > >So I think conditional looping will be required.
> > > >
> > > > Cleaner than the method named after me would be to process the order
> > nodes
> > > > you have, and then pass the difference between 50 and their count to
a
> > > > recursive template that would emit the blank lines until zero (or
less
> > than
> > > > zero) was reached:
> > > >
> > > > <xsl:template match="orders">
> > > >    <xsl:apply-templates select="order"/>
> > > >    <xsl:call-template name="write-blanks">
> > > >      <xsl:with-param name="counter" select="50 - count(order)"/>
> > > >    </xsl:call-template>
> > > > </xsl:template>
> > > >
> > > > (Since you've already seen the recursive template I leave it to you
to
> > > > adjust it -- and get the numbering of the blank lines right. ;-)
> >
> >
> > ======================================================================
> > Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
> > Mulberry Technologies, Inc.                http://www.mulberrytech.com
> > 17 West Jefferson Street                    Direct Phone: 301/315-9635
> > Suite 207                                          Phone: 301/315-9631
> > Rockville, MD  20850                                 Fax: 301/315-8285
> > ----------------------------------------------------------------------
> >    Mulberry Technologies: A Consultancy Specializing in SGML and XML
> > ======================================================================
> >
> >
>
>
>
>
>
>
>
> O SAPO ja esta livre de vmrus com a Panda Software, fique vocj tambim!
> Clique em: http://antivirus.sapo.pt
>
>







O SAPO ja esta livre de vmrus com a Panda Software, fique vocj tambim!
Clique em: http://antivirus.sapo.pt

Current Thread