|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: sorting data and removing the duplicates
----- Original Message -----
From: Ronald <ronald@xxxxxxxxxxx>
To: <xsl-list@xxxxxxxxxxxxxxxx>
Sent: Monday, June 19, 2000 5:39 AM
Subject: sorting data and removing the duplicates
> Hi there,
>
> I've encountered the following:
>
> I have a huge list of variables being set ( it's a xml file)
> and with XSLt i want to sort this file on alfabetical order
> and then remove the duplicates.
> The xml file sort of looks like this:
>
> <value><var>date1</var><date>01-01-1999</date></value>
> <value><var>date2</var><date>01-02-1999</date></value>
> <value><var>date3</var><date>01-01-1999</date></value>
> <value><var>date2</var><date>01-02-1999</date></value>
>
> I found that sorting this list was not so difficult, but removing the
> duplicates...erm...
> I dunno how to do that with XSLT.
> My current list looks like this:
>
> <value><var>date1</var><date>01-01-1999</date></value>
> <value><var>date2</var><date>01-02-1999</date></value>
> <value><var>date2</var><date>01-02-1999</date></value>
> <value><var>date3</var><date>01-01-1999</date></value>
>
> But I want something that looks like:
>
> <value><var>date1</var><date>01-01-1999</date></value>
> <value><var>date2</var><date>01-02-1999</date></value>
> <value><var>date3</var><date>01-01-1999</date></value>
>
> BTW:
> The content of the var. is enough to do a search on, F.E. date2 always
gets
> the same value.
This one should be in the archives because I asked it several months ago.
Here's the solution I was given.
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<h2>Original List</h2>
<xsl:apply-templates select="list"/>
<h2>Sorted List w/ No Duplicates</h2>
<xsl:apply-templates select="list" mode="sort-nodup"/>
</xsl:template>
<xsl:template match="list">
<xsl:apply-templates select="item"/>
</xsl:template>
<xsl:template match="list" mode="sort-nodup">
<xsl:apply-templates select="item[not(.=preceding-sibling::item)]">
<xsl:sort/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="item">
<div>
<xsl:value-of select="."/>
</div>
</xsl:template>
</xsl:stylesheet>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








