[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
RE: [xsl] Using "except" with node sequences
Subject: RE: [xsl] Using "except" with node sequences From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Mon, 4 Aug 2008 19:06:46 +0100 |
It works for me (I get <data id="3"> only). Stylesheet: <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <xsl:variable name="normalized_data" as="element()+"> <data id="1"> <info action="delete" /> <info action="insert" /> <stuff /> </data> <data id="2"> <info action="insert" /> <stuff /> </data> <data id="3"> <stuff /> </data> </xsl:variable> <olddata> <xsl:sequence select="$normalized_data[not(info/@action='delete')] except $normalized_data[info/@action='insert' or info/@action='modify']" /> </olddata> </xsl:template> </xsl:stylesheet> Result with Saxon 9.1 (any source document): <olddata><data id="3"><stuff/></data></olddata> Though I wouldn't have written the code this way; I would write $normalized_data[condition1 and not(condition2)] Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: James Sulak [mailto:jsulak@xxxxxxxxxxxxxxxx] > Sent: 04 August 2008 18:39 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Using "except" with node sequences > > 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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Using "except" with node , Michael Kay | Thread | [xsl] node functions, Sarkup Sarkup |
Re: [xsl] alternative to repeatedly, Dimitre Novatchev | Date | RE: [xsl] Using "except" with node , James Sulak |
Month |
Keywords