xsl-list
[Top] [All Lists]

grouping problem

2005-12-12 09:12:49


Hi am having a little problem with grouping. I want to "clear" the key at
the start of each document element, but am having some trouble figuring out
what I'm doing wrong. Thanks in advance for the help.

Dan

Here's the xsl:

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

  <xsl:output
       method="text"
       encoding="iso-8859-1"
       indent="yes"/>

  <xsl:key name="groupbyposition" match="personnel" use="@group" />

  <xsl:variable name="tab" select="'&#009;'" />
  <xsl:variable name="nl" select="'&#10;'" />


  <xsl:template match="publication">
    <xsl:apply-templates select="document"/>
  </xsl:template>

  <xsl:template match="document">


    <xsl:for-each select="record/personnel[(_at_)group and
generate-id(.)=generate-id(key('groupbyposition', @group))]">
      <xsl:sort select="@group" data-type="number" order="ascending"/>
      <xsl:variable name="groups" select="@group"/>

      <xsl:value-of select="$groups"/>
      <xsl:text>****</xsl:text>
      <xsl:value-of select="../personnel[(_at_)group=$groups][1]/position"/>
      <xsl:value-of select="$nl"/>
    </xsl:for-each>

    <xsl:value-of select="$nl"/>
  </xsl:template>


<xsl:template match="text()" />
</xsl:stylesheet>

Here's my current output:

6****Chair
7****CFO
26****VP

4****President And CEO

And here's the output I want:

6****Chair
7****CFO
26****VP

4****President And CEO
7****CFO
26****VP


Here's the xml:


<?xml version="1.0" encoding="iso-8859-1"?>

<publication>
<document>
<industry code="12">Consumer Durables &amp; Apparel</industry>
<record fragment="compensation">
<companyname fpid="4754">ADS inc.</companyname>
<date desc="perioddate">20050131</date>
<personnel group="7">
<personname fppid="46241">Guy Bérubé</personname>
<compensation desc="salary" rate="1">200850</compensation>
<compensation desc="bonus" rate="1">100425</compensation>
<compensation desc="other" rate="1">0</compensation>
<compensation desc="total">301275</compensation>
<position>CFO</position>
</personnel>
<personnel group="6">
<personname fppid="46231">Paul Drouin</personname>
<compensation desc="salary" rate="1">206000</compensation>
<compensation desc="bonus" rate="1">0</compensation>
<compensation desc="other" rate="1">0</compensation>
<compensation desc="total">206000</compensation>
<position>Chair</position>
</personnel>
</record>
<record fragment="compensation">
<companyname fpid="5174">Algo Group Inc.</companyname>
<date desc="perioddate">20041231</date>
<personnel group="7">
<personname fppid="105376">Sol Chankowsky</personname>
<compensation desc="salary" rate="1">199540</compensation>
<compensation desc="bonus" rate="1">0</compensation>
<compensation desc="other" rate="1">0</compensation>
<compensation desc="total">199540</compensation>
<position>CFO</position>
</personnel>
<personnel group="26">
<personname fppid="49407">Jerry Miller</personname>
<compensation desc="salary" rate="1">358323</compensation>
<compensation desc="bonus" rate="1">0</compensation>
<compensation desc="other" rate="1">0</compensation>
<compensation desc="total">358323</compensation>
<position>VP</position>
</personnel>
<personnel group="26">
<personname fppid="105380">Steve Silverstein</personname>
<compensation desc="salary" rate="1">224000</compensation>
<compensation desc="bonus" rate="1">0</compensation>
<compensation desc="other" rate="1">0</compensation>
<compensation desc="total">224000</compensation>
<position>VP</position>
</personnel>
</record>
</document>
<document>
<industry code="20">Pharmaceuticals</industry>
<record fragment="compensation">
<companyname fpid="29978">AnorMED Inc.</companyname>
<date desc="perioddate">20050331</date>
<personnel group="4">
<personname fppid="95859">Michael Abrams</personname>
<compensation desc="salary" rate="1">376250</compensation>
<compensation desc="bonus" rate="1">155925</compensation>
<compensation desc="other" rate="1">0</compensation>
<compensation desc="total">532175</compensation>
<position>President And CEO</position>
</personnel>
<personnel group="26">
<personname fppid="128149">Tony Hesby</personname>
<compensation desc="salary" rate="1">142500</compensation>
<compensation desc="bonus" rate="1">20000</compensation>
<compensation desc="other" rate="1">0</compensation>
<compensation desc="total">162500</compensation>
<position>VP</position>
</personnel>
<personnel group="7">
<personname fppid="95868">William Adams</personname>
<compensation desc="salary" rate="1">209888</compensation>
<compensation desc="bonus" rate="1">64828</compensation>
<compensation desc="other" rate="1">0</compensation>
<compensation desc="total">274716</compensation>
<position>CFO</position>
</personnel>
<personnel group="26">
<personname fppid="-18014">Paul Brennan</personname>
<compensation desc="salary" rate="1">214240</compensation>
<compensation desc="bonus" rate="1">56514</compensation>
<compensation desc="other" rate="1">0</compensation>
<compensation desc="total">270754</compensation>
<position>VP</position>
</personnel>
</record>
</document>
</publication>

--~------------------------------------------------------------------
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>
  • grouping problem, Whitney, Dan (CanWest Interactive) <=