Also top tip regarding this:
<xsl:apply-templates select="node()|@*"/>
What the union operator | does is de-dupe and sort the nodes into
document order, so by doing "node() | @*" you are giving the processor
more work than "@* | node()" because all the attributes nodes have to
be moved in the sort before the node()s.
If you are using xslt 2.0, then you should use "@*, node()" (comma
instead of pipe) which returns the nodes exactly the way you specify,
without the de-dupe or sort.
I think Saxon now does this optimization automatically - but I'm not
sure which version it comes out in, it might be something that's yet to
be released.
In fact it's not a very big win anyway: Saxon for years has been able to
spot that both operands to "|" are sorted node-sets, in which case it
does a merge with no sort, which isn't going to take that much longer
than simply concatenating the two sequences, assuming you are using the
TinyTree where node order comparisons are highly efficient.
Michael Kay
Saxonica
--~------------------------------------------------------------------
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>
--~--