RE: [xsl] SAXON: Generate 10 elements per page

Subject: RE: [xsl] 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: [xsl] 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() &lt; 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: [xsl] 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


Current Thread