Probably this would be faster?
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:key name="kComDesc" match="h1|p|b|i"
use="exists(ancestor::Comments[1])"/>
<xsl:template match="key('kComDesc', 'true')">
Whatever processing here
</xsl:template>
</xsl:stylesheet>
--
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
You've achieved success in your field when you don't know whether what
you're doing is work or play
On 9/28/06, Michael Kay <mike(_at_)saxonica(_dot_)com> wrote:
> But it's free enough to support a bit of a workaround, even
> if you have no schema:
>
> <xsl:variable name="comment-elements"
> select="//comments//(h1|p|b|i)"/>
>
> <xsl:template match="*[exists(. intersect $comment-elements)]">
> ...
> </xsl:template>
>
> I think this should work.
Yes, but it might have fairly horrible performance.
I don't know how other processors work, but with Saxon, patterns are a lot
more efficient if they identify the element names that match, because Saxon
basically does a hash lookup on the node kind and then on the node name. Any
match="*" pattern gets tested against every node; and in this case that will
involve a serial search through the list of h1|p|b|i elements, which is
distinctly O(n^2). Not worth the savings in keystrokes.
Michael Kay
http://www.saxonica.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>
--~--
--~------------------------------------------------------------------
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>
--~--