This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: conditional match
- To: xsl-list at lists dot mulberrytech dot com
- Subject: Re: [xsl] conditional match
- From: Wendell Piez <wapiez at mulberrytech dot com>
- Date: Thu, 31 May 2001 16:26:33 +0100
- Reply-To: xsl-list at lists dot mulberrytech dot com
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@mulberrytech.com
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