# Re: Interpretaion of grouping for-each

 Subject: Re: Interpretaion of grouping for-each From: "james walker" Date: Tue, 04 Nov 2003 10:51:03 +0000
I thought i might add an test example because i think it may help me to understand it a bit better:
<viewentries>
<viewentry><entrydata><text>ghe</text></entrydata></viewentry>
<viewentry><entrydata><text>aggj</text></entrydata></viewentry>
<viewentry><entrydata><text>bab</text></entrydata></viewentry>
<viewentry><entrydata><text>corry</text></entrydata></viewentry>
<viewentry><entrydata><text>curry</text></entrydata></viewentry>
<viewentry><entrydata><text>don</text></entrydata></viewentry>
<viewentry><entrydata><text>din</text></entrydata></viewentry>
<viewentry><entrydata><text>eat</text></entrydata></viewentry>
<viewentry><entrydata><text>carry</text></entrydata></viewentry>
<viewentry><entrydata><text>edd</text></entrydata></viewentry>
<viewentry><entrydata><text>abbl</text></entrydata></viewentry>
<viewentry><entrydata><text>ettf</text></entrydata></viewentry>
<viewentry><entrydata><text>full</text></entrydata></viewentry>
<viewentry><entrydata><text>geik</text></entrydata></viewentry>
</viewentries>

<xsl:key name="ve-by-firstocc" match="viewentry" use="substring(entrydata/text,1,1)" />
<xsl:template match="viewentries">
<xsl:for-each select="viewentry[count(. | key('ve-by-firstocc', substring(entrydata/text,1,1))[1]) = 1]">
<xsl:sort select="substring(entrydata/text,1,1)" data-type="text" order="ascending"/>
<xsl:variable name="firstletter" select="substring(entrydata/text,1,1)" />
<xsl:value-of select="substring(entrydata/text,1,1)"/>
<xsl:for-each select="key('ve-by-firstocc', substring(entrydata/text,1,1))">
<xsl:sort select="entrydata/text" data-type="text" order="ascending"/>
<xsl:value-of select="entrydata/text" />
</xsl:for-each>
</xsl:for-each>
</xsl:template>

how would it loop through the viewentries for bothe for each staements?

```From: "james walker" <jameswalkerandy@xxxxxxxxxxx>
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re:  Interpretaion of grouping for-each
Date: Tue, 04 Nov 2003 10:24:03 +0000```

What does count() =1 represent (got a bit confused about jeni's explanation)
"and
```count(. | .....) =1
id the currently selected viewdata is that first element.
so
```
"
Just to be clear, am i right in saying that "viewentry{key('ve-by-firstocc', substring(entrydata[3]/text,1,1))[1]]" selects the first of each group of viewentries with the same key (including groups which only have one viewentry in it)?

```From: David Carlisle <davidc@xxxxxxxxx>
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re:  Interpretaion of grouping for-each
Date: Mon, 3 Nov 2003 17:02:29 GMT```

> Does it go through viewentries which have dont have repeat key values?

```No it selects the first (in document order) viewentry with each key
value (even if that key value is not repeated).```

See any description of muenchian grouping, eg Jeni's site.

```<xsl:for-each select="viewentry
that selects all viewentries then
key('ve-by-firstocc', substring(entrydata[3]/text,1,1))
selects al the entries with the same key,
so
key('ve-by-firstocc', substring(entrydata[3]/text,1,1))[1]
selects the first of that group
and
count(. | .....) =1
id the currently selected viewdata is that first element.
so
viewentry[....]
just selects the first entry in each group as teh predicate is false in
other case.```

David

```--
http://www.dcarlisle.demon.co.uk/matthew```

```________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________```

XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list

_________________________________________________________________
Use MSN Messenger to send music and pics to your friends http://www.msn.co.uk/messenger

XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list

_________________________________________________________________
It's fast, it's easy and it's free. Get MSN Messenger today! http://www.msn.co.uk/messenger

XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list

### PURCHASE STYLUS STUDIO ONLINE TODAY!

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

### 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