[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Can this be written in a shorter form?

Subject: Re: Can this be written in a shorter form?
From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx>
Date: Wed, 7 Jan 2004 22:58:28 +0100
xls choose type
> > This is part of a <xls:choose> test
> >
> > <xsl:when test="$node_detlijn[$node_position]/@type = 'text' or
> > $node_detlijn[$node_position]/@type = 'style'">
> >
>
> <xsl:when test="$node_detlijn[$node_position]/@type[. = 'text' or . =
'style']" />
>
> should do the trick.

Yes.

When there are much more than two choices (or unknown number) it would be
preferrable to have them specified separately (as the text descendents of a
global-scope element in the stylesheet or in an imported stylesheet).

Then the comparison will be:

  <xsl:when test="$node_detlijn[$node_position]/@type = $choices />

where the "$choices" xsl:variable is defined in the following way:

 <xsl:variable name="choices" select="document('')/*/myChoices::*[1]/*"/>

and we have declared a specific namespace and bound the "myChoices" prefix
to it and we have the following global-scope element:

<myChoices:group1>
  <choice>text</choice>
  <choice>style</choice>
    .  .   .  .  .  .  .  .  .  .  .
  <choice>last</choice>
</myChoices:group1>

For efficiency we could put the choices in a separate tree and define a key:

<xsl:key name="kChoices" match="choice" use="."/>


Then the test (with the choices tree as the current document ) will simply
be:

  <xsl:when test="key('kChoices', $node_detlijn[$node_position]/@type)"/>


Dimitre Novatchev.
FXSL developer

http://fxsl.sourceforge.net/ -- the home of FXSL
Resume: http://fxsl.sf.net/DNovatchev/Resume/Res.html





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


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.