xsl-list
[Top] [All Lists]

Re: [xsl] can't get variable content after call-template

2006-06-26 02:26:14
Hi Georg,
 You need to use template parameters as below:

<xsl:template match="//example" mode="multi">
  <xsl:variable name="pmode">multi</xsl:variable>
  <xsl:variable name="pmode" select="'multi'" /> <!-- or like this,
as David suggested -->
  <xsl:call-template name="logfile">
     <xsl:with-param name=pmode" select="$pmode" />
  </xsl:call-template>
  <xsl:apply-templates mode="multi"/>
</xsl:template>

<xsl:template name="logfile">
  <xsl:param name="pmode" />
  <xsl:choose>
     <xsl:when test="$pmode='multi'">
        <xsl:text>mode: multi</xsl:text>
     </xsl:when>
     <xsl:otherwise>
        <xsl:text>mode: normal</xsl:text>
     </xsl:otherwise>
  </xsl:choose>
</xsl:template>

Regards,
Mukul


On 6/26/06, Georg Hohmann <georg(_dot_)hohmann(_at_)gmail(_dot_)com> wrote:
Hello,

I've gone through the "variable" section at
http://www.dpawson.co.uk/xsl/sect2/N8090.html#d10293e40
but couldn't find a solution ... so here i'm back on the list.

I got a stylesheet like this
...
<xsl:template match="//example" mode="multi">
  <xsl:variable name="pmode">multi</xsl:variable>
  <xsl:call-template name="logfile"/>
  <xsl:apply-templates mode="multi"/>
</xsl:template>
...
<xsl:template name="logfile">
  <xsl:choose>
     <xsl:when test="@pmode='multi'">
        <xsl:text>mode: multi</xsl:text>
     </xsl:when>
     <xsl:otherwise>
        <xsl:text>mode: normal</xsl:text>
     </xsl:otherwise>
  </xsl:choose>
</xsl:template>

I want to use this for writing a logfile which content depends on the
mode set by the "-im" option of saxon. But when i run this i get
"Variable $pmode has not been declared". It seems like the variable
declaration in the initial template is not recognized, but i don't
know why.
Any help is appreciated.

Regards,
Georg

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