Subject: Re: Removing duplicates based on set of identifiers
From: George Cristian Bina <george@xxxxxxxxxxxxx>
Date: Mon, 15 Sep 2008 11:31:42 +0300
|
Hi,
You can use xs:for-each-group. For example if you join the tag ids as
the grouping key then you will get a stylesheet like below:
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="doc">
<xsl:for-each-group select="odo" group-by="string-join(tag/@id,
'-')">
<xsl:copy-of select="."/>
</xsl:for-each-group>
</xsl:template>
</xsl:stylesheet>
Best Regards,
George
--
George Cristian Bina
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
Kolda, Marcin wrote:
Hi,
I have problem with removing group duplicates. I want to remove duplicates, which contains childs with identical ids.
I'm looking for solution that does that using XSLT 2.0. Example of input and output is below.
Input:
<doc>
<odo>
<tag id="1"/>
<tag id="2"/>
<tag id="3"/>
</odo>
<odo>
<tag id="1"/>
<tag id="3"/>
</odo>
<odo>
<tag id="2"/>
<tag id="3"/>
</odo>
<odo>
<tag id="1"/>
<tag id="2"/>
<tag id="3"/>
</odo>
<odo>
<tag id="1"/>
<tag id="3"/>
</odo>
<odo>
<tag id="3"/>
</odo>
</doc>
Output:
<doc>
<odo>
<tag id="1"/>
<tag id="2"/>
<tag id="3"/>
</odo>
<odo>
<tag id="1"/>
<tag id="3"/>
</odo>
<odo>
<tag id="2"/>
<tag id="3"/>
</odo>
<odo>
<tag id="3"/>
</odo>
</doc>
Do you have any ideas?
Marcin
|