xsl-list
[Top] [All Lists]

RE: xsl:key grouping problem

2004-11-17 07:10:22
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(_dot_)Elovirta(_at_)nokia(_dot_)com 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


--~------------------------------------------------------------------
XSL-List info and archive: 
http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to:
http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--





                
__________________________________ 
Do you Yahoo!? 
Meet the all-new My Yahoo! - Try it today! 
http://my.yahoo.com 
 


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>