xsl-list
[Top] [All Lists]

RE: Unique entries from substrings

2005-06-26 20:46:16
Andreas,

You could approach it as a grouping problem, in which case this input:


<REPORT_ACCESS>
  <REPORTS>
    <REPORT>
      <!-- not unique in list -->
      <DATE>07/08/2005</DATE>
    </REPORT>
    <REPORT>
      <!-- unique -->
      <DATE>05/08/2005</DATE>
    </REPORT>
    <REPORT>
      <!-- not unique in list -->
      <DATE>07/08/2005</DATE>
    </REPORT>
    <REPORT>
      <!-- unique 05-2005-->
      <DATE>05/09/2005</DATE>
    </REPORT>
    <REPORT>
      <!-- unique 07-2005-->
      <DATE>07/09/2005</DATE>
    </REPORT>
  </REPORTS>
</REPORT_ACCESS>

with this xsl:

<?xml version="1.0" encoding="iso8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
   <xsl:output method="xml" indent="yes"/>
   <xsl:strip-space elements="*"/>

<xsl:key match="DATE" name="kDates" use="concat(substring(., 1, 2), substring(., 7))"/>

   <xsl:template match="DATE[generate-id(.) = generate-id(
           key('kDates', concat(substring(., 1, 2), substring(., 7)))[1])
           ]">
       <xsl:value-of select="concat(substring(., 1, 2), substring(., 7))"/>
       <xsl:text>&#xa;</xsl:text>
   </xsl:template>

   <xsl:template match="DATE"/>

</xsl:stylesheet>

Yields:

<?xml version="1.0" encoding="UTF-8"?>
072005
052005

Of course, you may have to adjust to include the day, etc ... in which case you wouldn't need the substring and concat business.

--A

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today - it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>