Subject: How to efficently determine if a nodes exists with an attribute value other than those in a list
From: "Peter Hunsberger" <peter.hunsberger@xxxxxxxxx>
Date: Tue, 7 Aug 2007 11:27:56 -0500
|
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/*[@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
|