[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Grouping (yet again)
OK, I give up :-( Having spent most of the day trying to add some structure to a file, I'm lost on Muenchian stuff :-( partial inputfile <list> <datum day="02" dir="axis" dow="5" group="Downloads" month="11" value="74" week="43" year="2001"/> <datum day="02" dir="batik" dow="5" group="Downloads" month="11" value="87" week="43" year="2001"/> <datum day="02" dir="cocoon" dow="5" group="Downloads" month="11" value="36" week="43" year="2001"/> <datum day="02" dir="cocoon2" dow="5" group="Downloads" month="11" value="39" week="43" year="2001"/> <datum day="02" dir="crimson" dow="5" group="Downloads" month="11" value="116" week="43" year="2001"/> <datum day="02" dir="fop" dow="5" group="Downloads" month="11" value="241" week="43" year="2001"/> <datum day="02" dir="soap" dow="5" group="Downloads" month="11" value="296" week="43" year="2001"/> <datum day="02" dir="xalan-c" dow="5" group="Downloads" month="11" value="25" week="43" year="2001"/> <datum day="02" dir="xalan-j" dow="5" group="Downloads" month="11" value="245" week="43" year="2001"/> <datum day="02" dir="xang" dow="5" group="Downloads" month="11" value="7" week="43" year="2001"/> <datum day="02" dir="xerces-c" dow="5" group="Downloads" month="11" value="368" week="43" year="2001"/> <datum day="02" dir="xerces-j" dow="5" group="Downloads" month="11" value="1125" week="43" year="2001"/> <datum day="02" dir="xerces-p" dow="5" group="Downloads" month="11" value="56" week="43" year="2001"/> <datum day="03" dir="axis" dow="6" group="Downloads" month="11" value="16" week="43" year="2001"/> <datum day="03" dir="batik" dow="6" group="Downloads" month="11" value="4" week="43" year="2001"/> <datum day="03" dir="cocoon" dow="6" group="Downloads" month="11" value="3" week="43" year="2001"/> <datum day="03" dir="cocoon2" dow="6" group="Downloads" month="11" value="7" week="43" year="2001"/> <datum day="03" dir="crimson" dow="6" group="Downloads" month="11" value="29" week="43" year="2001"/> <datum day="03" dir="fop" dow="6" group="Downloads" month="11" value="72" week="43" year="2001"/> <datum day="03" dir="soap" dow="6" group="Downloads" month="11" value="115" week="43" year="2001"/> <datum day="03" dir="xalan-c" dow="6" group="Downloads" month="11" value="3" week="43" year="2001"/> <datum day="03" dir="xalan-j" dow="6" group="Downloads" month="11" value="38" week="43" year="2001"/> <datum day="03" dir="xerces-c" dow="6" group="Downloads" month="11" value="81" week="43" year="2001"/> <datum day="03" dir="xerces-j" dow="6" group="Downloads" month="11" value="350" week="43" year="2001"/> <datum day="03" dir="xerces-p" dow="6" group="Downloads" month="11" value="8" week="43" year="2001"/> [...] </list> desired outputformat <foo> <data group="Downloads"> <datum week="200143" total="(sum of value atts for this week)"> <datum dir="projectname" value="downloads"/> <datum dir="" value=""/> <datum dir="" value=""/> ... (repeated for each dir) </datum> ... (repeated for each week) </data> ... (repeated for each group) </foo> my stylesheet so far <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:key name="datum-group" match="datum" use="@group"/> <xsl:key name="datum-groupyearweek" match="datum" use="concat(@group,'-',@year,'-',@week)"/> <xsl:key name="datum-groupyearweekdir" match="datum" use="concat(@group,'-',@year,'-',@week,'-',@dir)"/> <xsl:template match="list"> <graph> <xsl:for-each select="datum[generate-id() = generate-id(key('datum-group', @group)[1])]"> <data group="{@group}"> <xsl:for-each select="key('datum-group', @group) [generate-id() = generate-id(key('datum-groupyearweek', concat(@group,'-',@year,'-',@week))[1] )]"> <datum week="{concat(@year,@week)}"> <xsl:for-each select="key('datum-groupyearweek', concat(@group,'-',@year,'-',@week)) [generate-id() = generate-id(key('datum-groupyearweekdir', concat(@group,'-',@year,'-',@week,'-',@dir))[1] )]"> <datum dir="{@dir}" value="{@value}"/> </xsl:for-each> </datum> </xsl:for-each> </data> </xsl:for-each> </graph> </xsl:template> </xsl:stylesheet> and output so far <?xml version="1.0" encoding="UTF-8"?> <graph> <data group="Downloads"> <datum week="200143"> <datum value="74" dir="axis"/> <datum value="87" dir="batik"/> <datum value="36" dir="cocoon"/> <datum value="39" dir="cocoon2"/> <datum value="116" dir="crimson"/> <datum value="241" dir="fop"/> <datum value="296" dir="soap"/> <datum value="25" dir="xalan-c"/> <datum value="245" dir="xalan-j"/> <datum value="7" dir="xang"/> <datum value="368" dir="xerces-c"/> <datum value="1125" dir="xerces-j"/> <datum value="56" dir="xerces-p"/> </datum> <datum week="200144"> <datum value="25" dir="axis"/> <datum value="22" dir="batik"/> <datum value="2" dir="cocoon"/> <datum value="13" dir="cocoon2"/> <datum value="39" dir="crimson"/> <datum value="74" dir="fop"/> <datum value="149" dir="soap"/> <datum value="5" dir="xalan-c"/> <datum value="46" dir="xalan-j"/> <datum value="4" dir="xang"/> <datum value="96" dir="xerces-c"/> <datum value="481" dir="xerces-j"/> <datum value="10" dir="xerces-p"/> </datum> ... all-in-all, it looks pretty well, but something is wrong with the grouping...: the numbers are completely incorrect :-( Is there any glaring error somewhere in my stylesheet? Thanks for any help, </Steven> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|