If you use normalize-space() when indexing the values, then it's a good
idea to use it when retrieving them as well.
Without more context, it's hard to know whether this is your bug or not.
Michael Kay
-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of
Laura(_at_)beam(_dot_)tv
Sent: 09 October 2003 14:32
To: XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Muenchian grouping help - removing
'duplicates' from a nodeset
Hi all,
This is probably quite a basic question, but I've been
scratching my head over it all day and I could use some guidance.
I have an XML file which is going to be used as a
"dictionary" for an internationalised web application. The
structure of he file is like so:
<dictionary>
<text>foo</text>
<text>bar</text>
<text>foo</text>
<text>baz</text>
<text>foobar</text>
(etc...)
</dictionary>
The file contains quite a few "duplicates" (in terms of the
text() content of the node), and I've been trying to figure
out a way to strip out all the dupicates, leaving me with an
XML file with only unique <text> elements.
I wrote an XSL to identify all the duplicates, and print them
out [basically
using: test="current() = following-sibling::text or current()
= preceding-sibling::text"] But now I want to actually remove
the duplicates and create a new XML file in the output tree.
I think they way to do this is via Muenchian grouping. I know
what I need to
do: group all the <text> elements by their text() content;
and select only the first one in each group. But I've
followed the guidelines on Jeni Tennison's XSLT pages and I
can't seem to get my head around how keys actually work.
So far I have tried (these are obviously just sample lines
from my XSL):
<xsl:key name="text-by-content" match="text"
use="normalize-space(text())" />
And then:
<xsl:apply-templates select="text[generate-id(.) =
generate-id(key('text-by-content', text())[1])]"/>
But this produces no output at all.
I'm sure what I'm missing is blatently obvious... :-/
I'm using Sablotron 1.0, if that makes any difference.
Thanks in advance,
Laura.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list