|
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 |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] RE: For expressions and /, Michael Kay | Thread | [xsl] leading : on qnames, David Carlisle |
| Re: [xsl] Urgent please folks, need, G. Ken Holman | Date | Re: [xsl] unique elements from diff, G. Ken Holman |
| Month |