[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

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


Subject: Re: [xsl] How to efficently determine if a nodes exists with an attribute value other than those in a list
From: David Carlisle <davidc@xxxxxxxxx>
Date: Tue, 7 Aug 2007 17:42:28 +0100

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

xsl:variable with no as or select attribute always creates a document
node, so here $tcheck is a document node with a child text node with
string value 'x y z' 
what you want is


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


which gives you a sequence of strings, but then



@type except $tcheck

except is set difference, using _node identity_
as the test. As you had it  it's the same as @type as
it is the sequece 9of 1) type attribute nodes, minus the document node
in $tcheck.

Once $tcheck is a sequence of strings you'd get a type error as execpt
needs node sequences.

doc/*[(not(@type=$tcheck))]

is your friend (or not depending on whether a node not having a type
attribute at all is a possibility, and what you want in that case)

David

________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. 
________________________________________________________________________


Current Thread