[xsl] Problem with "except" operator

Subject: [xsl] Problem with "except" operator
From: Felix Nensa <nensa@xxxxxxxx>
Date: Wed, 11 Feb 2009 14:44:37 +0100
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

I am using the latest version of Saxon.

Kind regards,

Felix

Current Thread