Re: [xsl] Filtering duplicate tags

Subject: Re: [xsl] Filtering duplicate tags
From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx>
Date: Tue, 27 May 2008 12:27:53 +0530
With XSLT 2.0, you can accomplish this as 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="xml" indent="yes" />

  <xsl:template match="root">
    <root>
      <xsl:for-each-group select="data" group-by="@name">
        <xsl:copy-of select="current-group()[1]" />
      </xsl:for-each-group>
    </root>
  </xsl:template>

</xsl:stylesheet>


On 5/27/08, Buddhi D. Mahindarathne <buddhi@xxxxxxxxxxxxxxxxxxx> wrote:
> Hi All,
>
> Following is my sample xml file.
> I want to filter out similar (duplicated) elements and make a new xml
> which has distinct values.
> Matching and filtering need to be done based on Attribute on the first
> tag,
>
> Ex,
> <data name="LBL_Inch"> --> Attribute "LBL_Inch"
>
>
>
> <root>
>        <data name="LBL_Inch">
>                <value>Inch</value>
>                <comment>Inches</comment>
>        </data>
>        <data name="LBL_MM">
>                <value>mm</value>
>                <comment>MM</comment>
>        </data>
>        <data name="LBL_MM">
>                <value>mm</value>
>                <comment>MM</comment>
>        </data>
> </root>
>
>
>
> After transformation I need a xml file like this,
>
> <root>
>        <data name="LBL_Inch">
>                <value>Inch</value>
>                <comment>Inches</comment>
>        </data>
>        <data name="LBL_MM">
>                <value>mm</value>
>                <comment>MM</comment>
>        </data>
> </root>
>
> Please help me on this...
>
> - Thank you all
>
>
>  ____            _     _ _     _
>  | __ ) _   _  __| | __| | |__ (_)
>  |  _ \| | | |/ _` |/ _` | '_ \| |
>  | |_) | |_| | (_| | (_| | | | | |
>  |____/ \__,_|\__,_|\__,_|_| |_|_|


-- 
Regards,
Mukul Gandhi

Current Thread