xsl-list
[Top] [All Lists]

Re: [xsl] Got an XSLT function that does value intersection (not identity intersection)?

2021-07-11 12:17:42

The following XSLT stylesheet, also seems to work,

Yes, but doing N-squared deep-equal comparisons doesn't scale very well.

Michael Kay
Saxonica


<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform 
<http://www.w3.org/1999/XSL/Transform>" 
                         xmlns:xs="http://www.w3.org/2001/XMLSchema 
<http://www.w3.org/2001/XMLSchema>"
                         xmlns:fn1="http://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
XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/293509> (by 
email <>)
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--
<Prev in Thread] Current Thread [Next in Thread>