xsl-list
[Top] [All Lists]

RE: XPath condition supplied as a parameter

2002-10-23 08:09:19
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(_dot_)gill(_at_)acturis(_dot_)com]
Sent: Wednesday, October 23, 2002 10:03 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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])[(_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

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



<Prev in Thread] Current Thread [Next in Thread>