kozi: call-template mit "dynamischem" Attribut (Namen)

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

--
Keine Panik, ich weiß durchaus nicht was zu tun ist! (ALF)
  1. 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
    
    1. 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
      
      1. 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
        
        1. Nein, er möchte ein: <xsl:call-template name="$TemplateNameAlsVariable"/> und das geht nicht.

          Grüße
          Thomas

          Genau! Naja schade...

          --
          Keine Panik, ich weiß durchaus nicht was zu tun ist! (ALF)