Re: [xsl] Creating mailing labels - 3 columns in a row.

Subject: Re: [xsl] Creating mailing labels - 3 columns in a row.
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Mon, 19 Apr 2004 19:52:56 +0200
At 2004-04-19 13:14 -0400, Nishad Hassan wrote:
I have an xmls in the following form

<ADDRESSES count="5">
 <ADDRESS>
  <STREET>421 VULCAN</STREET>
  <CITY>BUFFALO</CITY>
  <STATE>NY</STATE>
  <ZIP>14207</ZIP>
</ADDRESS>
....
....
</ADDRESSES>

I want to transform this to a table with 3 columns in a row.
(information from each <ADDRESS> node goes to one cell). how can
I achieve this?

By starting at every third one and processing three at a time.


Here is my xsl which generates a table with only one column.

        <table border="0" width="804" cellspacing="0">
                <xsl:for-each select="ADDRESS" >

<xsl:for-each select="ADDRESS[ position() mod 3 = 1 ]">


<tr>

<xsl:for-each select=". | following-sibling::ADDRESS[position()&lt;3]">



                                <td height="96" width="267" class="MLFont">
...
My Question: Is it possible to generate a <tr> and </tr> element only
if, it is a third element.

Yes, above you can see that every third address is selected for the row, the row is started, then the given address and two following addresses produce columns.


I hope this helps.

...................... Ken

--
Public courses: Spring 2004 world tour of hands-on XSL instruction
Each week:   Monday-Wednesday: XSLT/XPath; Thursday-Friday: XSL-FO
Hong Kong May 17-21; Bremen Germany May 24-28; Helsinki June 14-18

World-wide on-site corporate, govt. & user group XML/XSL training.
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)
Male Breast Cancer Awareness  http://www.CraneSoftwrights.com/s/bc

Current Thread