Re: [xsl] XSLT 1.0 support in browsers, as of June 2008

Subject: Re: [xsl] XSLT 1.0 support in browsers, as of June 2008
From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx>
Date: Wed, 18 Jun 2008 16:21:00 +0100
>> <xsl:if test="not(ancestor::ed:del) and not(//xref[@target=$anchor])">
>>
>> ...very much :0)
>
> The only way to avoid the "//" above would be to use xsl:key, which didn't
> seem necessary so far because Saxon and MSXML seem to perform well without.
> I'll give that a try when I have time.

I would definitely use a key... and you seem to check for the
existence of elements a lot doing things like:

<xsl:if test="//elem[cond]">

so you should be able to improve performance if you key all elements
by name and use that instead eg:

<xsl:key name="elems-by-name" match="*" use="name()"/>

with

<xsl:if test="key('elems-by-name', 'elem')[cond]">

Basically just go through the code replacing // with a key and where
possible don't use the ancestor axis... performance tuning step 1 :)

-- 
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/

Current Thread