Subject: RE: [xsl] xsl:key grouping problem From: Mark Ivs <markivs2003@xxxxxxxxx> Date: Wed, 17 Nov 2004 06:10:22 -0800 (PST) |
Jarno, thank you so much for replying. Your solution works great. But, I am still not clear why it works. I guess that's bad :) Ok, here's the thing that I don't get. generate-id function takes a node-set as a parameter. In your solution you are concatinating, country_group, year attribute and num attribute. So, for a country node with country_group=AAA, @year=2004 and num=2 the concatinated value will look like this "AAA20042". How does generate-id on country be equal to generate-id on the key? That's where I am confused. country[generate-id() = generate-id(key('groups', concat(country_group, '2004', '2'))) ?? Using xsl keys seems like a tough concept to understand(atleast for me). Are there other novices out there who agrees with me ? I will really appreciate if Jarno or someone explain. Thank you in advance. I have pasted the xml below for reference. Mark --------- XML --------- <?xml version="1.0"?> <myroot> <country year="2004" num="1"> <country_group>WWW</course_group> <num>001</num> </country> <country year="2004" num="1"> <country_group>ZZZ</course_group> <num>001</num> </country> <country year="2004" num="2"> <country_group>AAA</course_group> <num>221</num> </country> <country year="2004" num="2"> <country_group>BBB</course_group> <num>002</num> </country> <country year="2004" num="2"> <country_group>CCC</course_group> <num>022</num> </country> <country year="2004" num="2"> <country_group>AAA</course_group> <num>011</num> </country> </myroot> --- Jarno.Elovirta@xxxxxxxxx wrote: > Hi, > > > Hello all, > > I am new to xsl and I am having trouble with > grouping. > > I have listed my XML below. I would like to get a > list > > of all unique country_groups which has a year=2004 > and > > num=2. I am trying to solve this using xsl:key and > > key() function. Can someone help me please ? > > <xsl:key name="groups" match="country" > use="concat(country_group, @year, @num)"/> > <xsl:template match="myroot"> > <xsl:for-each select="country[generate-id() = > generate-id(key('groups', concat(country_group, > '2004', '2')))]"> > <xsl:value-of select="country_group"/> > <xsl:text> </xsl:text> > </xsl:for-each> > </xsl:template> > > Cheers, > > Jarno > > __________________________________ Do you Yahoo!? Meet the all-new My Yahoo! - Try it today! http://my.yahoo.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] xsl:key grouping problem, Jarno.Elovirta | Thread | Re: [xsl] xsl:key grouping problem, David Carlisle |
[xsl] Adobe export as xml, Pawson, David | Date | Re: [xsl] xsl:key grouping problem, David Carlisle |
Month |