call-template mit "dynamischem" Attribut (Namen)
kozi
- xsl
0 Thomas J.S.0 verenice0 Thomas J.S.0 kozi
<xsl:param name="templateName">
<xsl:value-of select="tmpid" /></xsl:param>
<xsl:call-template name="$templateName"/>
Geht das irgendwie?
Also ich meine genau so funktioniert es leider nicht.
Meine Frage ist jetzt ob ich die Möglichkeit habe in call-template dem Attribut name einen Wert dynamisch (abhängig vom XML-Content) mitzugeben?
Hallo,
<xsl:param name="templateName">
<xsl:value-of select="tmpid" /></xsl:param>
<xsl:call-template name="$templateName"/>
>
> Geht das irgendwie?
Nein.
> Meine Frage ist jetzt ob ich die Möglichkeit habe in call-template dem Attribut name einen Wert dynamisch (abhängig vom XML-Content) mitzugeben?
Nein.
Du kannst folgendes machen (hier nur schematisch dargestellt):
choice
when test"etwas"
call template name="foo"
when test="etwasanderes"
call template name="bar"
otherwise
call template name="irgendwas"
Grüße
Thomas
Hallo,
<xsl:param name="templateName">
<xsl:value-of select="tmpid" /></xsl:param>
<xsl:call-template name="$templateName"/>
> >
> > Geht das irgendwie?
>
> Nein.
Du möchtest in einem Parameter einen Wert über value-of select speichern und diesen Wert bei dem Aufruf eines anderen Templates mitübergeben? Habe ich das richtig verstanden?
Das geht meiner Meinung nach:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="/">
<html>
<head>
<title>Hallo</title>
</head>
<body>
<p>
<xsl:call-template name="Start" />
</p>
</body>
</html>
</xsl:template>
<xsl:template name="Start">
<xsl:call-template name="Test">
<xsl:with-param name="Wert">
<xsl:text>HalloWelt</xsl:text>
<!-- Anstatt Text hier dann die value-of select-Abfrage einfügen -->
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="Test">
<xsl:param name="Wert" />
<xsl:value-of select="$Wert" />
</xsl:template>
</xsl:stylesheet>
Viele Grüße
verenice
Hallo,
<xsl:param name="templateName">
<xsl:value-of select="tmpid" /></xsl:param>
<xsl:call-template name="$templateName"/>
> > >
> > > Geht das irgendwie?
> >
> > Nein.
>
> Du möchtest in einem Parameter einen Wert über value-of select speichern und diesen Wert bei dem Aufruf eines anderen Templates mitübergeben? Habe ich das richtig verstanden?
Nein, er möchte ein: <xsl:call-template name="$TemplateNameAlsVariable"/> und das geht nicht.
Grüße
Thomas
Nein, er möchte ein: <xsl:call-template name="$TemplateNameAlsVariable"/> und das geht nicht.
Grüße
Thomas
Genau! Naja schade...