![]() |
![]() | ![]() | ![]() | Altova Mailing List Archives>Archive Index >comp.text.xml Archive Home >Recent entries >Thread Prev - call-template name="{$pCall}" possible ? [Thread Next] Re: call-template name="{$pCall}" possible ?To: NULL Date: 2/2/2005 12:32:00 PM FrankS wrote:
> Hi All,
> I have a problem with an call-template cmd at xslt 1.0:
>
> With: pCall = 'ExInput'
> ------
> I try to:
>
> <xsl:call-template name="{$pCall}">
> <xsl:with-param name="pVal" select="$pValue"/>
> </xsl:call-template>
> <!-- ============ -->
> <!-- ============ -->
> <xsl:template name="ExInput">
> <xsl:param name="pVal" select="'0'"/>
> <td style="background-color:#C0C0C0;"><xsl:call-template
> name="XYZ"><xsl:with-param name="pVal"
> select="."/></xsl:call-template></td>
> </xsl:template>
> <!-- ============ -->
> -------
> But it's not possible to call the Template with the param "{$pCall}" !!
> I get the error: undefined template
>
> It there no way to call - or it there an error in my code?
> Many thanks for your help before!
> BR
> Frank
>
hi,
it is impossible to do it directly
however, there is a pattern for this, named "template tags":
first, you have to mark your template with a tag; the template must
match that tag:
<my:ExInput/>
<xsl:template match="my:ExInput">
<!-- your stuff here -->
</xsl:template>
<my:ExOutput/>
<xsl:template match="my:ExOutput">
<!-- your stuff here -->
</xsl:template>
to invoke it, use this:
<xsl:apply-templates select="document()/*/my:*[ local-name()=$pCall ]"/>
--
Cordialement,
///
(. .)
-----ooO--(_)--Ooo-----
| Philippe Poulard |
-----------------------
| ![]() | ![]() | ![]() |
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | |||||
|
