Subject: Re: [xsl] Multi-level grouping across multiple input files question. From: David Carlisle <davidc@xxxxxxxxx> Date: Wed, 13 Oct 2004 12:19:15 +0100 |
> then by the month of <actual>, <actual>5/7/2004 8:34:00 AM </actual> horrible format you have for dates:-) (single digits so not fixed length strings) (also I can't tell if you are using the inverted "amercian" order, so is that 5 or 7 you want? (apply suitable combinations of substring-before or substring-after below, then use format-number to force it to two digits. Then you want something like <xsl:variable name="input" select=" document('april.xml') | document('may.xml') | document('june.xml') | document('july.xml') | document('august.xml') | document('september.xml') "/> <xsl:key name="a" match="claim" use="vendorname"/> <xsl:key name="b" match="claim" use="concat(vendorname,':',format-number(substring-before...))"/> <xsl:key name="c" match="claim" use="concat(vendorname,':',format-number(substring-before...),':',loadnum)"/> <!-- that sets up keys for all three levels, the code below just does the first level group (this would be a lot easier in xslt2 draft) --> <xsl:for-each select="$input/claims/claim"> <!-- process all claims --> <xsl:variable name="ids"> <xsl:for-each select="$input"> <xsl:value-of select="generate-id(key('a',vendorname)") <xsl:text>:</xsl:text> </xsl:for-each> </xsl:variable> <!-- That has the id of the first claim in each doc that has this vendorname --> <xsl:if test="generate-id(.)=substring-before($ids,':')"> <!-- if this is true then we are on the first claim with this vendor in the collection, so proceess the group of all claims with this vendor, otherwise do nothing. --> heading: <xsl:value-of select="vendorname"/> <!-- make a heading for the group --> <xsl:for-each select="$inputs"> <xsl:apply-templates select="key('a',vendorname)"/> </xsl:for-each> <!-- apply templates to all claims in this group (this will need to do essentially the same again but with keys b and c to do the subgroups) --> </xsl:if> </xsl:for-each> <!-- finish up --> David ________________________________________________________________________ This e-mail has been scanned for all viruses by Star. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk ________________________________________________________________________
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Multi-level grouping acro, David Carlisle | Thread | Re: [xsl] Multi-level grouping acro, G. Ken Holman |
[xsl] [Fwd: XSL Grouping and Filter, Werner, Wolfgang | Date | Re: [xsl] support extension in xala, Janvier Majirus FANS |
Month |