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