xsl-list
[Top] [All Lists]

Re: [xsl] dynamic template caller problems

2006-07-30 11:33:01
What is asked for is described here:
    http://fxsl.sf.net
and here:
    
http://www.idealliance.org/papers/extreme/proceedings/xslfo-pdf/2003/Novatchev01/EML2003Novatchev01.pdf


--
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.



On 7/30/06, Smoother(_at_)gmx(_dot_)de <Smoother(_at_)gmx(_dot_)de> wrote:
I got the following XML-File:

<root>
 <page1 template="template_a">
   ...
 </page1>
 <page2 template="template_b">
   ...
 </page2>
 <page3 template="template_b">
   ...
 </page3>
 ...
</root>

As you can see, the root element contains numerous nodes with different node-names. These 
nodes have an attribute, called "template" which indicates with which 
XSL-Template they should be transformed.

I have already written a "Master"-XSL-File which gets already the requested 
node from a given path and also the related template.
Now there's the problem to call the related template from the "Master"-XSL-File.

For example (this is my idea):

 User request: /page2/

 PHP & XSL-Solution returns /root/page2/ as the related XPath. (done)

 XSL lookups related template: "template_b" (done)

 XSL calls/applies the related template. (???)

 Called template is used for the following transformations (done)




What my current xsl-file looks like:

...

<!-- "master" template - calls related template -->
<xsl:template match="/">

 ...

 <xsl:value-of select="$template" /> <!-- e.g. 'template_b' -->

 <!-- This will not work, since name= always requires a QName :( -->
 <xsl:call-template name="$template" />

 <!-- ??? how to call/apply the related template ??? -->

</xsl:template>

...

External stylesheet imported from master-file:

...

<xsl:template name="template_b">  <!-- what about match= here?? 'Cause this template can be 
used for all nodes adding the attribute template="template_b" ...  -->
 <h1>template_b successfully called!</h1>
</xsl:template>

<xsl:template name="template_a"...


My question is, how I realize this idea of a dynamic template caller best. 
Thanks in advance, S. Renault.
--


Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer

--~------------------------------------------------------------------
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>
--~--