[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: xsl:key grouping problem

Subject: RE: xsl:key grouping problem
From: Mark Ivs <markivs2003@xxxxxxxxx>
Date: Wed, 17 Nov 2004 06:10:22 -0800 (PST)
xsl key grouping
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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.