[xsl] Using "except" with node sequences

Subject: [xsl] Using "except" with node sequences
From: "James Sulak" <jsulak@xxxxxxxxxxxxxxxx>
Date: Mon, 4 Aug 2008 12:38:35 -0500
Hello all,

I have a sequence of nodes stored in a variable, and I am attempting to filter
it using an XPath expression that includes the "except" operator.  However,
it's not working like I expect it to.

For a node sequence called $normalized_data:

<data id="1">
   <info action="delete" />
   <info action="insert" />
   <stuff />
</data>
<data id="2">
   <info action="insert" />
   <stuff />
</data>
<data id="3">
   <stuff />
</data>

I am attempting to filter it using this logic:

<olddata>
   <xsl:sequence select="$normalized_data[not(info/@action='delete')] except
$normalized_data[info/@action='insert' or info/@action='modify']" />
</olddata>

I expect the returned sequence to include all of the nodes in $normalized_data
that match the first condition and don't match the second condition (node 3).
 What I am actually getting is all of the nodes in $normalized data.  Is there
something about the "except" operator that I'm not understanding?

Thanks,

-James

Current Thread