RE: [xsl] XPath condition supplied as a parameter

Subject: RE: [xsl] XPath condition supplied as a parameter
From: Maulik Modi <MModi@xxxxxxxxxx>
Date: Wed, 23 Oct 2002 10:09:19 -0500
Look up the extension function evaluate(). I know both Saxon and Xalan
provide this. I am not sure which processor you used.

-Maulik

-----Original Message-----
From: Chris Gill [mailto:chris.gill@xxxxxxxxxxx]
Sent: Wednesday, October 23, 2002 10:03 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: [xsl] XPath condition supplied as a parameter 


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])[@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

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread