Hi,
I've been trying for awhile now to figure out how to make a dynamic table with dynamic columns. I've found tons of examples on the web but I cant seem to get any of them to work properly. So I figured I must be doing something wrong.
Here is my sample XML:
Catalog.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<catalog>
<item id="1">
<item-title>Test</item-title>
<item-price>#36;9.99</item-price>
<item-picture>/images/catalog/picture1.jpg</item-picture>
</item>
<item id="2">
<item-title>Test 2</item-title>
<item-price>#36;9.99</item-price>
<item-picture>/images/catalog/picture2.jpg</item-picture>
</item>
<item id="3">
<item-title>Test 3</item-title>
<item-price>#36;9.99</item-price>
<item-picture>/images/catalog/picture1.jpg</item-picture>
</item>
<item id="4">
<item-title>Test 4</item-title>
<item-price>#36;9.99</item-price>
<item-picture>/images/catalog/picture2.jpg</item-picture>
</item>
<item id="5">
<item-title>Test 5</item-title>
<item-price>#36;9.99</item-price>
<item-picture>/images/catalog/picture1.jpg</item-picture>
</item>
<item id="6">
<item-title>Test 6</item-title>
<item-price>#36;9.99</item-price>
<item-picture>/images/catalog/picture2.jpg</item-picture>
</item>
<item id="7">
<item-title>Test 7</item-title>
<item-price>#36;9.99</item-price>
<item-picture>/images/catalog/picture1.jpg</item-picture>
</item>
<item id="8">
<item-title>Test 8</item-title>
<item-price>#36;9.99</item-price>
<item-picture>/images/catalog/picture2.jpg</item-picture>
</item>
</catalog>
catalog_display.xsl
Code:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html" />
<xsl:variable name="columns" select="3" />
<xsl:template match="catalog">
<table border="1">
<xsl:for-each select="item[position() mod $columns = 1]">
<tr>
<xsl:for-each select=".|following-sibling::item[position() > 3]">
<td>
<xsl:value-of select="." />
</td>
</xsl:for-each>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
Basically suppose to create a new row every 3 items. But I can figure out where it actually tells it to create a new table row. Anyway, if someone can please help me or point me in the right direction I'll greatly appreciate it.