This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: Yet Another Grouping Question


> We want a result like this:
> 
>     Installed Software
> 
>   Program         Version
>   ------------------------
>   Emacs ......... 19.34 ..
>   Emacs ......... 20.3 ...
>   Emacs ......... 20.4 ...
>   JDK %%%%%%%%%%% 1.1.2 %%
>   JDK %%%%%%%%%%% 1.2 %%%%
>   XEmacs ........ 20.4 ...
>   XEmacs ........ 21.1.9 .
> 
OK, I see what you're after now.
I'd tackle it like this (I don't recall the exact shape of your data so
adapt as necessary):

1. create a set of distinct programs:
var progs select=//program
var distinct_progs select=$progs[not(@name=preceding::program/@name)]

2. iterate through this in sorted order:
for-each select=$distinct_progs
  sort select=@name
    var color choose when position() mod 2 = 0 red otherwise blue 
    for-each version of this program
      display this program version in the current background color.

Mike Kay


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]