Subject: Re: [xsl] Got an XSLT function that does value intersection (not identity intersection)? From: "Mukul Gandhi mukulg@xxxxxxxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Sun, 11 Jul 2021 04:28:51 -0000 |
On Thu, Jul 8, 2021 at 6:50 PM Roger L Costello costello@xxxxxxxxx < xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > I have an XML document that consists of <row> elements: > > <Document> > <row> > <x>1</x> > <y>2</y> > </row> > <row> > <x>3</x> > <y>4</y> > </row> > <row> > <x>1</x> > <y>2</y> > </row> > </Document> > > I want to eliminate duplicate rows. > The following XSLT stylesheet, also seems to work, <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn1="http://fn1" exclude-result-prefixes="xs fn1" version="2.0"> <xsl:output method="xml" indent="yes"/> <xsl:template match="Document"> <Document> <xsl:apply-templates select="row[not(fn1:hasRowOccuredEarlier(.))]"/> </Document> </xsl:template> <xsl:template match="row"> <xsl:copy-of select="."/> </xsl:template> <xsl:function name="fn1:hasRowOccuredEarlier" as="xs:boolean"> <xsl:param name="row" as="element(row)"/> <xsl:sequence select="some $r in $row/preceding-sibling::row satisfies deep-equal($r/*, $row/*)"/> </xsl:function> </xsl:stylesheet> -- Regards, Mukul Gandhi
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Got an XSLT function that, Michael Kay mike@xxx | Thread | Re: [xsl] Got an XSLT function that, Michael Kay mike@xxx |
[xsl] XQuery alternative ⁓ map | XS, Fiona Chen anonymous | Date | Re: [xsl] Got an XSLT function that, Michael Kay mike@xxx |
Month |