xsl-list
[Top] [All Lists]

Re: [xsl] Problem with "except" operator

2009-02-11 08:51:23
2009/2/11 Felix Nensa <nensa(_at_)zeec(_dot_)biz>:
Hi all,

I have a weird problem where the "except" operator does not behave as
I would expect it.
Given the following input source XML:

<root>
 <Response>
   <Users>
     <Count>2</Count>
     <User>
       <Username>henry</Username>
       <Online>false</Online>
       <UserId>302</UserId>
     </User>
     <User>
       <Username>felix</Username>
       <Online>false </Online>
       <UserId>288</UserId>
     </User>
   </GetUserList>
 </Response>
 <Response>
   <Friends>
     <Count>1</Count>
     <Friend>
       <UserId>288</UserId>
     </Friend>
   </Friends>
 </Response>
</root>

I am trying to get all those Users wich are not in the list of Friends
with the following expression:

<xsl:variable name="users" select="//Users/User/UserId" />
<xsl:variable name="friends" select="//Friends/Friend/UserId" />

<!-- debug output -->
<xsl:value-of select="$users except $friends" />

It outputs: 302 288
I would expect: 302

"except" is based on node identity, not value...

You want select="$users[not(. = $friends]]"



-- 
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/

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