[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
RE: [xsl] using xsl:for-each-group, grouping by child nodes?
Subject: RE: [xsl] using xsl:for-each-group, grouping by child nodes? From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Sat, 4 Oct 2008 10:32:30 +0100 |
Of course it's possible, and not really difficult. I have to say my instinct would be to start by transforming this into more XML-like XML, something like <players> <player> <name>joe</name> <age>2</age> <position>fielder</position> <state>ny</state> <team>mets</team> because all subsequent processing you do on the data would then be a lot clearer. (I know the number isn't the player's age, but I have no idea what it actually is...) With that it would be <xsl:template match="players"> <xsl:for-each-group select="player" group-by="concat(team, state)"> <xsl:value-of select="current-grouping-key()"/> <xsl:for-each-group select="current-group()" group-by="position"> <... Now, if you don't want to do the preprocessing, you just substitute different expressions into the above: players -> RESULTSET player -> ROW team -> COL[5]/DATA state -> COL[4]/DATA etc. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Eric Scheid [mailto:eric.scheid@xxxxxxxxxxxxxxx] > Sent: 04 October 2008 08:39 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] using xsl:for-each-group, grouping by child nodes? > > > I have export data that looks like this: > > <RESULTSET FOUND="6"> > <ROW MODID="3" RECORDID="1"> > <COL><DATA>joe</DATA></COL> > <COL><DATA>2</DATA></COL> > <COL><DATA>pitcher</DATA></COL> > <COL><DATA>ny</DATA></COL> > <COL><DATA>mets</DATA></COL> > </ROW> > <ROW MODID="3" RECORDID="2"> > <COL><DATA>mark</DATA></COL> > <COL><DATA>11</DATA></COL> > <COL><DATA>outfielder</DATA></COL> > <COL><DATA>ny</DATA></COL> > <COL><DATA>mets</DATA></COL> > </ROW> > <ROW MODID="3" RECORDID="3"> > <COL><DATA>jane</DATA></COL> > <COL><DATA>13</DATA></COL> > <COL><DATA>outfielder</DATA></COL> > <COL><DATA>ny</DATA></COL> > <COL><DATA>cubs</DATA></COL> > </ROW> > <ROW MODID="3" RECORDID="4"> > <COL><DATA>mike</DATA></COL> > <COL><DATA>7</DATA></COL> > <COL><DATA>outfielder</DATA></COL> > <COL><DATA>ny</DATA></COL> > <COL><DATA>mets</DATA></COL> > </ROW> > </RESULTSET> > > I'm trying to transform it into this: > > Team: mets, ny > pitchers: > joe, 2 > oufielders: > mark, 11 > mike, 7 > > Team: cubs, ny > outfielders: > jane, 13 > > .. so naturally I thought of using for-each-group, only > problem is I can't find any examples which shows how to > group-by using values in the child nodes .. so I don't know > if this is even possible, let alone exactly how to specify > it. I've tried a few different things to no avail. > > Is this even possible? > > e. > > > -- > Ironclad Networks > Information Architecture > http://www.ironclad.com.au/ > > "Providing tactical IA services to web agencies"
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] using xsl:for-each-group, gro, Eric Scheid | Thread | Re: [xsl] using xsl:for-each-group,, Eric Scheid |
RE: [xsl] Displaying Unique attribu, Michael Kay | Date | Re: [xsl] using xsl:for-each-group,, G. Ken Holman |
Month |
Keywords