Re: [xsl] alternative to repeatedly walking the ancestor axis in 1.0

Subject: Re: [xsl] alternative to repeatedly walking the ancestor axis in 1.0
From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx>
Date: Mon, 4 Aug 2008 10:08:38 -0700
> Yes (although you're just walking the ancestor axis once per node in a
> different place)

It is possible to create the following key (and any other keys!):

    <xsl:key name="kRtlMode" match="*[ancestor-or-self::*[@dir='rtl']]"
     use="generate-id()"/>

just during the initial reading of the xml document -- without any
walking up the ancestor axis.

That is, when the currently-read node satisfies:

  @dir='rtl'

then the "key-recording-mode" for the key named 'kRtlMode' is turned
on and key-values are generated for each element while this
"key-recording-mode" is on.

To summarise, it is perfectly possible to create the above key without
walking up the ancestor axis for the nodes.




--
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
Never fight an inanimate object
-------------------------------------
You've achieved success in your field when you don't know whether what
you're doing is work or play





On Mon, Aug 4, 2008 at 7:53 AM, Andrew Welch <andrew.j.welch@xxxxxxxxx> wrote:
>
> > Then simply use keys as shown in my first reply to this thread.
>
> Yes (although you're just walking the ancestor axis once per node in a
> different place)
>
> Out of interest, I wonder how in-scope-prefixes() works - does any
> tree walking need to take place?  If not, you could perhaps do:
>
> <foo xmlns:lang_cornish="...">
>
> and then test for that:
>
> test="in-scope-prefixes(.) = 'lang_cornish'"
>
>
> --
> Andrew Welch
> http://andrewjwelch.com
> Kernow: http://kernowforsaxon.sf.net/

Current Thread