Re: [xsl] RE: For expressions and / operator in XPath 2.0

Subject: Re: [xsl] RE: For expressions and / operator in XPath 2.0
From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>
Date: Thu, 3 Jan 2002 14:57:08 +0000
Mike,

> Basically, binary operators (and, or, etc) are recognized in the
> same way as XPath 1.0, by virtue of the lexical token that precedes
> them. Function names are recognized by a following "(", axis names
> by a following "::"; "if" by a following "("; "for", "some", and
> "every" by a following "$". So keywords are disambiguated from
> element names by a single-token lookahead.

So you could make 'for' without range variables recognisable through a
following "(" as is done with 'if':

  "for" "(" Expr ")" "return" Expr

>> Say you had a sequence of numbers (conceptually coordinate pairs).
>> You could do a 'scale' operation by multiplying the pairs by 2:
>>
>>   $coordinates -> (. * 2)
>>
>> and then do a 'move' operation by adding 50 to the odd numbers:
>>
>>   $coordinates -> (. * 2) -> (if (position() mod 2) then . +
>> 50 else .)
>
> [Parochial question: does this example have something to do with the
> new algorithm for British vehicle registrations?]

Um, no :) I took inspiration from the transform attribute in SVG:

  transform="translate(50,0) scale(2)"

does a scale followed by a move.

I guess it was the 'adding 50 to the second half of the year' that
made you think of the vehicle registrations? You might do something
along those lines with:

  $years -> (. - 2000) -> (., . + 50)

Perhaps.

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/


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


Current Thread