xsl-list
[Top] [All Lists]

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

2005-03-02 15:44:25


   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
________________________________________________________________________

--~------------------------------------------------------------------
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>
--~--