[xsl] dynamic template caller problems

Subject: [xsl] dynamic template caller problems
From: Smoother@xxxxxx
Date: Sun, 30 Jul 2006 19:54:45 +0200
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

Current Thread