xsl-list
[Top] [All Lists]

Re: help on removing duplicates

2005-01-21 11:29:12
i want to get a list of the first level nodes (A, B, C..) with their related
nodes (X, Y, Z...) but removing duplicates, so i'd like to get:
       A-XY
       B-X
       ...

...

as i don't have tight performance problems i don't need to resort to
muenchian methods,

But they do work well so why not use them if you can?
They make a good pattern, which, if you master it, can be used in many
situations (until XSLT 2.0 becomes widely available!)

But if you want to avoid key() and generate-id() and don't care about 
performance:

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

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">

  <xsl:template match="/">
    <xsl:apply-templates select="xml/el[not(node =
following::el[parent::xml]/node)]" />
  </xsl:template>
  
  <xsl:template match="/xml/el">
    <xsl:variable name="base" select="node" />
    <xsl:text>
    </xsl:text>
    <xsl:value-of select="$base" />
    <xsl:text>-</xsl:text>
    <xsl:apply-templates select="/xml/el/rel/el[../../node = $base and
not(node = following::el[../../node = $base and node = current()/node])]" />
  </xsl:template>
  
  <xsl:template match="/xml/el/rel/el">
    <xsl:value-of select="node" />
  </xsl:template>

</xsl:stylesheet>



--~------------------------------------------------------------------
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>