Re: [xsl] most efficient way to check for a group of tags?

Subject: Re: [xsl] most efficient way to check for a group of tags?
From: David Carlisle <davidc@xxxxxxxxx>
Date: Wed, 2 Mar 2005 22:44:25 GMT
   I've got a template that needs to know the if it
   contains only 1 of a specific group of tags when it's
   within a "content" tag, and I've got this condition to
   do this:

   count(ancestor::content[1]/child::*[self:tag1 or
   self:tag2 or self:tag3 ....]) = 1

   Now I need to check for about 15 different tags; is
   there a more efficient way to do this sort of check?


Usual comment about the T word, XSLT has no access to the tags in a
dcument, and given
<foo a="b"> stuff</foo>
The content of the tags are 'foo a="b"' and 'foo' respectively.
' stuff' is _between_ two tags, not the content of any tag.
(tags are not the same thing as elements)


probably it would be more efficient to do 
<xsl:key name="x" match="tag1|tag2|tag3" use="generate-id(..)"/>

....

<xsl:if test="key('x',generate-id(ancestor::content[1]))[2]">
   there's more than one of them
</xsl:if>

David

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

Current Thread