Use
<xsl:apply-templates mode="x" select="."/>
<xsl:template mode="x" match="forObj | flow | step">
Doing an explicit test on name() should only be a last resort: template
rules are there for this job.
Note that you can give the same template both a name and a match pattern if
you need to, and invoke it either by apply-templates or by call-template.
You could write (name()='forObj' or name()='flow'...), and in XSLT 2.0 you
could write <xsl:if test="name() = ('forObj', 'flow', 'step')"> but it's not
the right answer here.
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: Phillip Nicolson [mailto:pjn3(_at_)star(_dot_)le(_dot_)ac(_dot_)uk]
Sent: 16 September 2004 10:58
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] <xsl:test="">
I have a stylesheet containing a number of <xsl:test> statements.
Rather than having:
<xsl:if test="name() = 'forObj'">...........call template
<xsl:if test="name() = 'flow'">............call template
<xsl:if test="name() = 'step'">............call template
....etc
all of which call the same template is it possible to test if name() =
forObj OR flow OR step etc in one statement?
Many thanks for suggestions
--
Phillip Nicolson
Department of Physics & Astronomy Phone: (0)116 2523581
University of Leicester Email:
pjn3(_at_)star(_dot_)le(_dot_)ac(_dot_)uk
Leicester LE1 7RH Web:
http://www.astrogrid.org
--+------------------------------------------------------------------
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>
--+--