[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: every tenth row change bgcolor

Subject: Re: every tenth row change bgcolor
From: Jarkko Moilanen <Jarkko.Moilanen@xxxxxx>
Date: Fri, 6 Jun 2003 15:14:50 +0300 (EEST)
tr class
On Fri, 6 Jun 2003, G. Ken Holman wrote:

> Good morning, Jarkko!
>
> At 2003-06-06 13:20 +0300, Jarkko Moilanen wrote:
> >1. The question is that why in the first group is only 9 rows?
> >
> >2. In this part : (floor(position() div 20) mod 2),
> >    Am I saying something like modulate the group of
> >    20 by 0 and 1 values? Quess not, but have to suggest something =)
>
> There were a number of problems with your original stylesheet that combined
> to give you the problems you were having.
>
> (1) - counting in XSLT begins at 1, so at the least, your calculation has
> to deal with "(position() - 1)" instead of "position()" when doing modulo
> arithmetic
>
> (2) - I was confused why you were using modulo 20 instead of 10 when your
> groups were of 10, but then I realized you were using
> <xsl:apply-templates/> instead of <xsl:apply-templates
> select="Report/Row"/> ... the difference is that without a select=
> attribute, *all* child nodes are processed, thus processing the intervening
> text nodes as well as the <Row> nodes.  It happened that between
> your  groups of 10 you had comments which shifted your "child node" count by 1
>
> So, you will see below a working version where I tighten up the node
> processing by pushing only the nodes that are to be affected by the
> position() function in the current node list, and the counting modulo
> arithmetic is based on the grouping of 10 Rows, not the combination of 10
> Rows and 10 Text nodes.
>
> I hope this helps.
>
> ............... Ken

Yes, this was a great answer, thank you. =)

>
> p.s. remember the exercise of counting the node children and neglecting to
> count the text nodes at the end of each line?

Now that you brought it up...yes =)

I mentioned how this is a
> *very* common mistake made by most users of XSLT.
>
> T:\ftemp>type jarkko.xml
> <?xml version="1.0" encoding="UTF-8"?>
> <Report>
>
>   <Row>white</Row>
>   <Row>white</Row>
>   <Row>white</Row>
>   <Row>white</Row>
>   <Row>white</Row>
>   <Row>white</Row>
>   <Row>white</Row>
>   <Row>white</Row>
>   <Row>white</Row>
>   <Row>white</Row> <!-- 10 -->
>
>   <Row>blue</Row>
>   <Row>blue</Row>
>   <Row>blue</Row>
>   <Row>blue</Row>
>   <Row>blue</Row>
>   <Row>blue</Row>
>   <Row>blue</Row>
>   <Row>blue</Row>
>   <Row>blue</Row>
>   <Row>blue</Row> <!-- 20 -->
>
>   <Row>white</Row>
>   <Row>white</Row>
>   <Row>white</Row>
>   <Row>white</Row>
>   <Row>white</Row>
>   <Row>white</Row>
>   <Row>white</Row>
>   <Row>white</Row>
>   <Row>white</Row>
>   <Row>white</Row> <!-- 30 -->
>
> </Report>
>
> T:\ftemp>type jarkko.xsl
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:output method="html"/>
> <!-- Root template of my stylesheet -->
>     <xsl:template match="/">
>       <html>
>         <head>
>            <title>Color rows</title>
>          <style type="text/css">
>          .r0 {background-color: white}
>          .r1 {background-color: blue}
>          </style>
>         </head>
>         <body>
>          <table border="1">
>            <xsl:apply-templates select="Report/Row"/>
>          </table>
>         </body>
>       </html>
>     </xsl:template>
>
>     <xsl:template match="Row">
>       <tr class="r{floor((position() - 1) div 10) mod 2}">
>         <xsl:apply-templates/>
>       </tr>
>     </xsl:template>
>
> </xsl:stylesheet>
>
> T:\ftemp>saxon -o jarkko.htm jarkko.xml jarkko.xsl
>
> T:\ftemp>type jarkko.htm
> <html>
>     <head>
>        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
>
>        <title>Color rows</title><style type="text/css">
>          .r0 {background-color: white}
>          .r1 {background-color: blue}
>          </style></head>
>     <body>
>        <table border="1">
>           <tr class="r0">white</tr>
>           <tr class="r0">white</tr>
>           <tr class="r0">white</tr>
>           <tr class="r0">white</tr>
>           <tr class="r0">white</tr>
>           <tr class="r0">white</tr>
>           <tr class="r0">white</tr>
>           <tr class="r0">white</tr>
>           <tr class="r0">white</tr>
>           <tr class="r0">white</tr>
>           <tr class="r1">blue</tr>
>           <tr class="r1">blue</tr>
>           <tr class="r1">blue</tr>
>           <tr class="r1">blue</tr>
>           <tr class="r1">blue</tr>
>           <tr class="r1">blue</tr>
>           <tr class="r1">blue</tr>
>           <tr class="r1">blue</tr>
>           <tr class="r1">blue</tr>
>           <tr class="r1">blue</tr>
>           <tr class="r0">white</tr>
>           <tr class="r0">white</tr>
>           <tr class="r0">white</tr>
>           <tr class="r0">white</tr>
>           <tr class="r0">white</tr>
>           <tr class="r0">white</tr>
>           <tr class="r0">white</tr>
>           <tr class="r0">white</tr>
>           <tr class="r0">white</tr>
>           <tr class="r0">white</tr>
>        </table>
>     </body>
> </html>
> T:\ftemp>rem Done!
>
> --
> Upcoming hands-on courses: (registration still open!)
> -      (XSLT/XPath and/or XSL-FO) North America: June 16-20, 2003
>
> G. Ken Holman                mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
> Crane Softwrights Ltd.         http://www.CraneSoftwrights.com/s/
> Box 266, Kars, Ontario CANADA K0A-2E0   +1(613)489-0999 (F:-0995)
> ISBN 0-13-065196-6                      Definitive XSLT and XPath
> ISBN 0-13-140374-5                              Definitive XSL-FO
> ISBN 1-894049-08-X  Practical Transformation Using XSLT and XPath
> ISBN 1-894049-11-X              Practical Formatting Using XSL-FO
> Member of the XML Guild of Practitioners:    http://XMLGuild.info
> Male Breast Cancer Awareness http://www.CraneSoftwrights.com/s/bc
>
>
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
>
>


****************************************************************
Jarkko Moilanen          "Erehtyminen on inhimillista,
Researcher                mutta todella suuret mokat
jm60697@xxxxxx            vaativat tietokoneen käyttöä."
www.uta.fi/~jm60697
GSM: +358 50 3766 927
****************************************************************
* ITCM | Information Technology and Crisis Management
* http://www.itcm.org
****************************************************************






 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.