I am getting the feeling that this is not possible but I would like
someone to confirm for me
I am trying to write a generic template to create a table with the first
column spanned over all rows in HTML. The code below works apart from
the condition is ignored. From reading around, I am getting the
impression that I cannot do this.
Any help much appreciated
----------------------------------------------------------------
<!--
data_tag is the name of the XML node to be included in the table
data_condition is the string that should form the condition to subset
the data
-->
<xsl:template name="table_spanned">
<xsl:param name="first_col_width"/>
<xsl:param name="first_col_text"/>
<xsl:param name="data_tag"/>
<xsl:param name="data_condition"/>
<table>
<!-- Count rows -->
<xsl:variable name="numrow"
select="count(child::*[name()=$data_tag][$data_condition])"/>
<!-- Store first element value -->
<xsl:variable name="FirstAnswer"
select="(child::*[name()=$data_tag][$data_condition])[1]/@ANSWERNAME"/>
<tr>
<!-- First table element with correct
rowspan value -->
<xsl:element name="td">
<xsl:attribute
name="width"><xsl:value-of select="$first_col_width"/></xsl:attribute>
<xsl:attribute
name="rowspan"><xsl:value-of select="$numrow"/></xsl:attribute>
<xsl:value-of
select="$first_col_text"/>
</xsl:element>
<td>
<!-- First element -->
<xsl:value-of
select="$FirstAnswer"/>
</td>
</tr>
<!-- All elements that are not the first element
-->
<xsl:for-each
select="(child::*[name()=$data_tag][$data_condition])[(_at_)ANSWERNAME !=
$FirstAnswer]">
<tr>
<td>
<xsl:value-of
select="@ANSWERNAME"/>
</td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list