<xsl:if test="not(ancestor::ed:del) and not(//xref[(_at_)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/
--~------------------------------------------------------------------
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>
--~--