xsl-list
[Top] [All Lists]

[xsl] removing duplicates from a sequence while retaining order

2012-10-08 19:32:43
Dear XSLT list,

Is there an easy way in XPath (not using XSLT instructions) to select only the 
first occurrence of a specific value in a sequence of atomic values, so as to 
return the sequence in the original order, but with re-occurrences of each 
value after the first appearance of that value removed? For example, given an 
input sequence:

        ('Matthew','Mark','Luke','Matthew','John')

I want to produce

        ('Matthew','Mark','Luke','John')

I can't rely on using distinct-values() because that isn't guaranteed to keep 
specifically the *first* occurrence of a value.

In an XSLT context I can construct a temporary tree, poke each value into an 
element, all on the same level in the hierarchy, and then test for:

*[not(preceding-sibling::* = .)]

but I don't know how to write an XPath predicate that will filter the sequence 
of *atomic values* the way I want. Is this just a blind spot? Can anyone advise?

Thanks,

David
djbpitt(_at_)gmail(_dot_)com

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


<Prev in Thread] Current Thread [Next in Thread>