Re: [xsl] calling template with name passed in a variable

Subject: Re: [xsl] calling template with name passed in a variable
From: David Carlisle <davidc@xxxxxxxxx>
Date: Fri, 18 Dec 2009 02:14:20 GMT
<xsl:template match="xsd:element[@type=$InPlaceTypesList]">
   <xsl:call-template name="@type"/> // <-- error line
</xsl:template>


why have a named template there? it would be more natural to do


<xsl:template match="xsd:element">
   <xsl:apply-templates select="@type"/>
</xsl:template>

<xsl;template match="xsd:element/@type">
 the normal code
</xsl:template>

<xsl:template match="xsd:element/@type[.=$InPlaceTypesList]" priority="2">
  code for these types.
</xsl:template>

Incidetally if that's the only use for InPlaceTypesList it is easier and
more efficent to have a list of strings rather than elements.

<xsl:param name="InPlaceTypesList" select="('MyTypeX','MyTypeY')"/>

David

________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. 
________________________________________________________________________

Current Thread