xsl-list
[Top] [All Lists]

Re: Context node traversal inside predicates (was: Nodes and Strings)

2005-07-26 06:51:13
Tempore 15:35:46, die 07/26/2005 AD, hinc in xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com scripsit Michael Kay <mike(_at_)saxonica(_dot_)com>:

The 'context()' function would be similar to the 'current()' fuction.
It would recall previous context nodes.

'context(n)' would recall the n-th context node (as found
when propagating
upwards in the predicates of the expression)

e.g.:
'context(0)' is equal to '.'
'context(1)' is equal to the context node as constructed by the
immmediately outer predicate.
...
'context(-1)' would be equal to the context node as found in
the outermost
predicate.

Something like this was in an early draft of XPath 1.0, and was implemented
(IIRC) in WD-xsl, though I've rarely seen it used in practice.

I think the idea of manually addressing the stack of context variables is
very error-prone and counter-intuitive. The proper way to do this is to
declare a range variable. In XQuery you can do this using the "let" clause
of the FLWOR expression; XPath 2.0 has a poor man's version in the "for"
expression

Thank you, David and Michael, for your most enlightening answers.

They served me as a nice introduction to XPath 2.0
I can't wait for my ordered copies of Mike's XSLT 2.0 and Xpath 2.0 books to arrive. They should be delivered any day now... Ok, I've been telling that myself for the last 2 weeks;)

kind regards,
--
Joris Gillis (http://users.telenet.be/root-jg/me.html)
"Εν οίδα ότι ουδέν οίδα"  - Σωκρατης

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>