Hi Clifton,
Match only on partition elements and check if you are on the first
partition or on the first drive and in each case generate the
corresponding columns with rowspan:
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:template match="summary">
<table border="1">
<xsl:apply-templates/>
</table>
</xsl:template>
<xsl:template match="partition">
<tr>
<xsl:if test="not(preceding-sibling::partition) and
not(../preceding-sibling::drive)">
<td rowspan="{count(../..//partition)}">
<xsl:value-of select="../@name"/>
</td>
</xsl:if>
<xsl:if test="not(preceding-sibling::partition)">
<td rowspan="{count(../partition)}">
<xsl:value-of select="../@name"/>
</td>
</xsl:if>
<td>
<xsl:value-of select="@name"/>
</td>
</tr>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet>
Best Regards,
George
---------------------------------------------------------------------
George Cristian Bina - http://aboutxml.blogspot.com/
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
Clifton Mullen wrote:
I'm trying to build a table with three columns. The first two may have
a rowspan attribute. Something like this...
<table border=1>
<tr>
<td rowspan=5>Comp1</td>
<td rowspan=3>Drive1</td>
<td>Partition1</td>
</tr>
<tr>
<td>Partition2</td>
</tr>
<tr>
<td>Partition3</td>
</tr>
<tr>
<td rowspan=2>Drive2</td>
<td>Partition4</td>
</tr>
<tr>
<td>Partition5</td>
</tr>
</table>
... from data like this...
<summary>
<comp name="Comp1">
<drive name="Drive1">
<partition name="Partition1" />
<partition name="Partition2" />
<partition name="Partition3" />
</drive>
<drive name="Drive2">
<partition name="Partition4" />
<partition name="Partition5" />
</drive>
</comp>
... more comp ...
</summary>
I've tried nested for-each and template matches and just can't figure
it out. Any help is appreciated.
Regards,
Cliff
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--