[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

[xsl] Re: Shorthand for XPath expression


Subject: [xsl] Re: Shorthand for XPath expression
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Wed, 18 Jul 2001 21:44:11 -0700 (PDT)

William Bagby wrote:

> Is there an XPath shorthand for:
> 
> <xsl:if test="@name = 'bob' or @name = 'joe' or @name = 'ben'">
> 
> something along the lines of
> 
> <xsl:if test="@name in ('bob', 'joe', 'ben')">

Two ways come into mind:

1. Have the following in your code globally defined:

<someprefix:Values>
  <Value>bob<Value>
  <Value>joe<Value>
  <Value>ben<Value>
</someprefix:Values>
  
Assign this to an xsl:variable like this:

<xsl:variable name="vValues" select="document('')/*/someprefix:Values"/>

Then your test will be:

@name = $vValues/Value

When a string is compared to a node-set, the comparison is true if a node (from the
node-set) exists for which the comparison is true.

2. You can use the id() function -- look at:

http://www.dpawson.co.uk/xsl/sect2/muench.html#d196e227


Cheers,
Dimitre Novatchev.

__________________________________________________
Do You Yahoo!?
Get personalized email addresses from Yahoo! Mail
http://personal.mail.yahoo.com/

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



Current Thread
Keywords