xsl-list
[Top] [All Lists]

[xsl] How to efficently determine if a nodes exists with an attribute value other than those in a list

2007-08-07 09:28:22
Suppose I have a document with a bunch of nodes each with a type
attribute, something like:

<doc>
    <a type="x"/>
    <b type="y"/>
    .
    .
    .
    <z type="42"/>
</doc>

Using an XSLT 2 stylesheet I'd like to efficently determine if there
are any nodes where the type attribute  value is not in a list of
given values.  I thought I might be able to do this with a sequence
and the except operator, but I haven't gotten it to work, the code
basically looks like:

<xsl:variable name="tcheck"><xsl:sequence select="'x',y','z'"/></xsl:variable>

<xsl:if test="doc/*[(_at_)type except $tcheck]">got one</xsl:if>

Which I suspect is attempting to check attributes against strings.
Using Saxon 8 I don't get an error, but I also don't get a "got one"
result.  Any suggestions?

-- 
Peter Hunsberger

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