[xsl] Problem finding set difference on string values

Subject: [xsl] Problem finding set difference on string values
From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx>
Date: Tue, 1 Jan 2008 15:49:36 +0530
Hi all,
   I am facing some problem calculating set difference on string values.

The problem details are below.

I have a text file, data.txt which contain information as below:
abc
pqr
mno
uvw
(here, each data element is delimited by a newline)

My XSLT 2.0 stylesheet is following:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                        version="2.0">

 <xsl:output method="text" />

 <xsl:variable name="list1"
select="tokenize(unparsed-text('data.txt'), '\n')" />
 <xsl:variable name="list2" select="('abc', 'pqr', 'ok')" />

 <xsl:template match="/">
   <xsl:for-each select="$list2[not(. = $list1)]">
     <xsl:value-of select="." /><xsl:text>&#xa;</xsl:text>
   </xsl:for-each>
 </xsl:template>

</xsl:stylesheet>

I want to find elements in 'list2' which are not present in text file.

I am expecting answer:
ok

But the output produced is:
abc
pqr
ok

What am I doing wrong?

I would appreciate help for this problem ...

I am using Saxon 9-b.

-- 
Regards,
Mukul Gandhi

Current Thread