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()<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(_at_)CraneSoftwrights(_dot_)com
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