Re: [xsl] conditional match

Subject: Re: [xsl] conditional match
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Thu, 31 May 2001 16:26:33 +0100
Hi Kevin,

At 08:42 PM 5/31/01, you wrote:

I would like to insert a conditional statement in my XSLT that if or when
true would cause a template match:

For instance:

<xsl:choose>
     <xsl:when test="$TRANSFORMER_Platform='test'">
          <xsl:call-template name="zoom"/>
     </xsl:when>
</xsl:choose>

thus,

<xsl:template  name= "zoom" match="/././>
     <xsl:element name="zoom">
          <xsl:value-of select="number() div .25"/>
     </xsl:element>
</xsl:template>

However, I assume that inserting the match causes the template to
automatically be executed even without the when being true. If I remove it
though, I am not sure how to match the node I want.

You assume incorrectly.


A template fires *if* it is the best match for a node on which an xsl:apply-templates instruction is called, *or* if it is called by name.

It is perfectly legal, and not uncommon, to have a template like

<xsl:template name="zoom">
  <xsl:element name="zoom">
    <xsl:value-of select="number() div .25"/>
  </xsl:element>
</xsl:template>

which never matches: it can still be called by name as in your example.

Hope that helps,
Wendell



======================================================================
Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
  Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list



Current Thread