Subject: RE: SAXON: Generate 10 elements per page
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Mon, 16 Feb 2004 13:28:08 -0000
|
This will need two phases of transformation, but you don't need two
stylesheets, you can write the intermediate results to a temporary tree.
The questions you are asking are not specific to Saxon: they are basic
XSLT coding questions. Could I ask you please to use the xsl-list at
mulberrytech for such questions - thanks.
Michael Kay
> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of
> SHEIKH Sajjad
> Sent: 16 February 2004 11:32
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE: SAXON: Generate 10 elements per page
>
>
> Now I am trying to sort all records (as following). It works
> only for first 10 records while I am expecting that it sorts
> all the records first and then start splitting the documents
> page by page.
>
> Do I need to write a stylesheet for sorting all the records
> first and generate a new xml doc and then apply the 2nd sheet
> to generate pages or can I do it in the same sheet as well?
>
> Any suggestions?
> Regards,
>
> <xsl:for-each select="Row[position() mod 10 = 1]">
> <xsl:sort select="field1"/>
> <saxon:output href="page{position()}.html">
> <html>
> <body>
> <xsl:for-each
> select=".|following-sibling::Row[position() < 10]">
> <xsl:sort select="field1"/>
>
>
>
> -----Original Message-----
> From: David Carlisle [mailto:davidc@xxxxxxxxx]
> Sent: 16 February 2004 11:15
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: SAXON: Generate 10 elements per page
>
>
>
> <xsl:variable name="value1">
> <xsl:value-of select="field1"/>
> </xsl:variable>
>
> why do people keep doing that?
> It is a lot of typing and causes the processor to be quite
> inefficient, building up a result tree fragment.
>
> You should always just do
>
>
> <xsl:variable name="value1" select="field1"/>
>
> Unless you actually intend to creste a result tree fragment.
>
> Although in your case you don't need a variable at all as it
> would be just as easy to use field1 rather than $value in
> your test expression.
>
>
>
> > While I am expecting that it will
> > produce one page with 9 elements!
>
> As always in xslt, it's better just to select the elements
> you want rather than selecting everything and then throwing
> something out. Your testing of position() and grouping into
> 10 is done here:
>
> <xsl:for-each select="Row[position() mod 10 = 1]">
>
> which is way before you have looked at your field1 element.
>
> In English your requirement is to select all Rows that don't
> have a field1 of N/A, and group those rows into 10s, so that is
>
> <xsl:for-each select="Row[field1 != 'N/A'][position() mod 10 = 1]">
>
>
> David
>
> --
> http://www.dcarlisle.demon.co.uk/matthew
>
> ______________________________________________________________
> __________
> This e-mail has been scanned for all viruses by Star
> Internet. The service is powered by MessageLabs. For more
> information on a proactive anti-virus service working around
> the clock, around the globe, visit: http://www.star.net.uk
> ______________________________________________________________
> __________
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>
> ______________________________________________________________
> This message has been scanned for all viruses by BTnet
> VirusScreen. The service is delivered in partnership with MessageLabs.
>
> This service does not scan any password protected or
> encrypted attachments.
>
> If you are interested in finding out more about the service,
> please visit our website at
> http://www.btignite.com/internetservices/btnet/products_viruss
creen.htm
==============================================================
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|