This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Shorthand for XPath expression


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]