Thomas J.S.: Auflösung einer Variablen innerhalb von call-template

Beitrag lesen

Hallo,

ich habe ein Problem mit der Auflösung von Variablen. Und zwar soll ein Template variabel aufgerufen werden <xsl:call-template name="$Template" />. Allerdings löst er sie nicht.

Was mach ich da falsch?

Fast alles.

<xsl:call-template name="all">
   <xsl:with-param name="CurrentNode" select="'TestTemplate'"/>
    </xsl:call-template>

mi select="'TestTemplate'" übergibts einen string. -->

<xsl:template name="all">
<xsl:param name="CurrentNode" />
<xsl:variable name="Node">
./<xsl:value-of select="string($CurrentNode)" />/preceding-sibling::*
</xsl:variable>

--> Hier macht du aus einem string nochmal einen string und dann möchtest du, dass dieser string als Knoten gilt. Das geht nicht.

<xsl:variable name="Template">
<xsl:value-of select="string($CurrentNode)" />tmpl
</xsl:variable>
xsl:choose
  <xsl:when test="count($Node) mod 2 = '0'">
   <xsl:element name="tr" use-attribute-sets="dark">
    <xsl:call-template name="$Template" />

name="$Template" $Template ist kein gültiger Name für einen Template:
name="Template" wäre einer, aber (zumindest hier) hast du kein Template mit dem Namen, sprich es gibt kein <xsl:template name="Template"> bei dir.

Grüße
Thomas