Subject: [xsl] grouping problem From: "Whitney, Dan (CanWest Interactive)" <DWhitney@xxxxxxxxxxx> Date: Mon, 12 Dec 2005 11:12:49 -0500 |
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="'	'" /> <xsl:variable name="nl" select="' '" /> <xsl:template match="publication"> <xsl:apply-templates select="document"/> </xsl:template> <xsl:template match="document"> <xsl:for-each select="record/personnel[@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[@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 & Apparel</industry> <record fragment="compensation"> <companyname fpid="4754">ADS inc.</companyname> <date desc="perioddate">20050131</date> <personnel group="7"> <personname fppid="46241">Guy Birubi</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>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XSLT 2.0 Tutorial at Zvon, Sylvain Hellegouarch | Thread | [xsl] license file for Saxon, Roger I Martin PhD |
Re: [xsl] XSLT 2.0 Tutorial at Zvon, Sylvain Hellegouarch | Date | RE: [xsl] Sorting the complete xml , Xuan Ngo |
Month |