I am attempting to loop through a table by column and transform it to individual divs. Id like to have tr[1]/td[1], tr[2]/td[1], tr[3]/td[1] ... all be part of one div. Then I'd like to move on to tr[1]/td[2], tr[2]/td[2], tr[3]/td[2].
I am able to transform my table when I use simpler code, but I'm having issues jumping down each tr row. Below is my XSLT. Any help would be great. I'm pretty new to XSLT, but not programming. The divs/styling is simply to make the output easier to see.
XML:
<table class="table-with-caption">
<thead>
<tr>
<th>Column Title 1</th>
<th>Column Title 2</th>
<th>Column Title 3</th>
<th>Column Title 4</th>
</tr>
</thead>
<tfoot>
<tr>
<td class="alert-info table-scroll-option" colspan="4">column</td>
</tr>
</tfoot>
<tbody>
<tr>
<td>TR1, TD1</td>
<td><span>TR1, TD2</span></td>
<td><span>TR1, TD3</span></td>
<td><span>TR1, TD4</span></td>
</tr>
<tr>
<td><span>TR2, TD1</span></td>
<td>Atque ab corporis modi deserunt adipisci, expedita temporibus.</td>
<td>Vitae, sint ullam velit accusantium, dolorum ad dolorem.</td>
<td>Iusto expedita minus praesentium vero voluptatum aut laboriosam.</td>
</tr>
<tr>
<td><span>TR3, TD1</span>.</td>
<td>Consequuntur corporis quo libero fuga ducimus provident minus.</td>
<td>Natus reiciendis molestias earum, dolorum similique amet quasi.</td>
<td>Consequuntur sunt minus laudantium, magnam labore, debitis quia!</td>
</tr>
</tbody>
</table>
XSL:
<xsl:for-each select="tbody/tr[position()<=$count-rows]">
<xsl:variable select="1" name="counter" />
<div style="border:thin solid red; padding 5px; margin:5px;">
<xsl:for-each select="tr[$counter]/td[position() le $count-cols]">
<div style="border:thin solid blue; padding 5px; margin:5px;">
<xsl:apply-templates select="node()[name() != 'caption']|attribute()[name() != 'class' and name() != 'tfoot']" />
</div>
<xsl:with-param name="counter" select="$counter + 1"/>
</xsl:for-each>
</div>
</xsl:for-each>
</div>
</xsl:when>
Expected Output:
<div style="border:thin solid red; padding 5px; margin:5px;">
<div style="border:thin solid blue; padding 5px; margin:5px;">TR1, TD1</div>
<div style="border:thin solid blue; padding 5px; margin:5px;"><span>TR2, TD1</span></div>
<div style="border:thin solid blue; padding 5px; margin:5px;"><span>TR3, TD1</span></div>
</div>