|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Got an XSLT function that does value intersection
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
|
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








