Hi,
I am new to xsl development , however I am determined to work on xsl porting project from Xalan interpretive to xalan compiled processor.
cut short version template is given below. app.xsl references generic.xsl and makes a template call with parameters. because I am trying to learn too many
things at a time , i am finding difficulty in replacing xalan:evalaute() function with standard XPath predicates.
Please help me with some clues on replacing xalan:evalaute with standard XPath expressions. Also some guidence to gain sufficient knowledge to replace such a calls made in several other places in
the entire project.
I am using xsltc for converting these static xsl files into translet for performance reasons. So there was a need for replacement of evalaute calls
Thanks & Regards,
Amar
app.xsl
<xsl:call-template name="mySelectFieldNew">
<xsl:with-param name="OptionPath">/WMS/wms_ref_annc_id/Row</xsl:with-param>
<xsl:with-param name="Value">value</xsl:with-param>
<xsl:with-param name="Display">display</xsl:with-param>
</xsl:call-template>
<xsl:call-template name="mySelectFieldNew">
<xsl:with-param name="OptionPath">/WMS/wms_ref_pref_lang/Row</xsl:with-param>
<xsl:with-param name="Value">value</xsl:with-param>
<xsl:with-param name="Display">display</xsl:with-param>
</xsl:call-template>
generic.xsl:
<xsl:template name="mySelectFieldNew">
<xsl
aram name="OptionPath" select="$default"/>
<xsl
aram name="Value" select="$default-value"/>
<xsl
aram name="Display" select="$default-display"/>
<xsl
aram name="Sort" select="'off'"/>
<xsl
aram name="SelectedValuePath" select="$default"/>
<xsl
aram name="ConstantSelectedValuePath" select="$default"/>
<xsl:choose>
<xsl:when test="not($OptionPath=$default)">
<xsl:choose>
<xsl:when test="$Sort = 'on'"> <!-- sorted -->
<xsl:for-each select="xalan:evaluate($OptionPath)">
<xsl:sort select="xalan:evaluate($Display)"/>
<option>
<xsl:if test="not($SelectedValuePath=$default and $ConstantSelectedValuePath=$default)">
<xsl:if test="$selectVal = xalan:evaluate($Value)">
<xsl:attribute name="selected"/>
</xsl:if>
</xsl:if>
<xsl:attribute name="value">
<xsl:value-of select="xalan:evaluate($Value)"/>
</xsl:attribute>
<xsl:value-of select="xalan:evaluate($Display)"/>
</option>
</xsl:for-each>
</xsl:when>
<xsl
therwise> <!-- unsorted -->
<xsl:for-each select="xalan:evaluate($OptionPath)">
<option>
<xsl:if test="not($SelectedValuePath=$default and $ConstantSelectedValuePath=$default)">
<xsl:if test="$selectVal = xalan:evaluate($Value)">
<xsl:attribute name="selected"/>
</xsl:if>
</xsl:if>
<xsl:attribute name="value">
<xsl:value-of select="xalan:evaluate($Value)"/>
</xsl:attribute>
<xsl:value-of select="xalan:evaluate($Display)"/>
</option>
</xsl:for-each>
</xsl
therwise>
</xsl:choose>
</xsl:when>
<xsl
therwise>
<xsl:template>