xsl-list
[Top] [All Lists]

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

2008-08-04 12:09:07
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::*[(_at_)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(_dot_)j(_dot_)welch(_at_)gmail(_dot_)com> 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/

--~------------------------------------------------------------------
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>
--~--


--~------------------------------------------------------------------
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>
--~--