xsl-list
[Top] [All Lists]

Re: [xsl] passing template names

2006-07-07 04:39:15
Hi Karl,

I think you can use something like below:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; xmlns:x="http://example.com/myTemplates";>

  <xsl:template match="@x:template1" x:template1="">
    <xsl:param name="contextNode"/>
    <xsl:for-each select="$contextNode">
      In template1!
    </xsl:for-each>
  </xsl:template>

  <xsl:template match="@x:template2" x:template2="">
    <xsl:param name="contextNode"/>
    <xsl:for-each select="$contextNode">
      In template1!
    </xsl:for-each>
  </xsl:template>

  <xsl:template match="/*">
    <xsl:variable name="target" select="'template1'"/>
<xsl:apply-templates select="document('')/*/xsl:template[(_at_)x:*[local-name()=$target]]">
      <xsl:with-param name="contextNode" select="."/>
    </xsl:apply-templates>
  </xsl:template>
</xsl:stylesheet>

I believe FXSL also has something similar, you might check that as well.

Best Regards,
George
---------------------------------------------------------------------
George Cristian Bina
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com


Karl wrote:
I am in a situation where in a particular section need to call
different template dynamically based on which template invokes it.
Though I can use <xsl:choose> or <xsl:if> to do that, i wish i pass
the template name as a param value.

 e.g.
<xsl:call-template name="A">
 <xsl:with-param name="TemplateName">xx_template</xsl:with-param>
</xsl:apply-templates>
...

<xsl:call-template name="A">
 <xsl:with-param name="TemplateName">yy_template</xsl:with-param>
</xsl:apply-templates>

and then

<xsl:template name="A">
 <xsl:param name="TemplateName"/>
 ....
 <xsl:call-template name="{$TemplateName}"/>
 ..
</xsl:template>

I doesnt work. Is it valid? If not, are there any better method to
achieve similar result. Currently, iam  passing numbers in param and
use <xsl:choose> to call different templates .
Thanks
karl


                
___________________________________________________________ All New Yahoo! Mail – Tired of Vi(_at_)gr@! come-ons? Let our SpamGuard protect you. http://uk.docs.yahoo.com/nowyoucan.html

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

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