> > In Saxon, //bar is handled by an index, so exists(//bar) should be quite
> > fast after the first time (when the index is built).
>
> What about:
>
> <xsl:template match="foo">
> <xsl:choose>
> <xsl:when
test="ancestor::*/@type = 'a'">
> ....
> <xsl:when
test="ancestor::*/@type = 'b'">
>
> vs
>
> <xsl:template
match="foo[ancestor::*/@type = 'a']">
>
> <xsl:template
match="foo[ancestor::*/@type = 'b']">
>
>
> Would you say the two are
roughly equivalent, or are there other
> subtle differences?
In my opinion
it worth to resolve tasks in xslt in a way that
is easier for human
understanding.
It's an implementer's responsibility to run it smoothly.
Xslt is much more closer to a declarative language than to an assembler.
--
Vladimir Nesterovsky
http://www.nesterovsky-bros.com/
|