Subject: Re: [xsl] Sorting under for-each-group From: "andrew welch" <andrew.j.welch@xxxxxxxxx> Date: Tue, 8 Aug 2006 15:03:17 +0100 |
toThe Stylesheet below does most of what I want -- It groups all of the entries for a single Subject under a single subject heading. I would like
subsort under each group (Subject) first by author then by title, and if possible, when there is/are no author/authors, by title alone. The example would put the Kolar book first, then the Siegar Book, both under the single heading "Catalogs. Austria".
I have spent a lot of time on it but have not been able to solve the sort within groupings problem. Can someone help? stylesheet and xml input sample below
Thanks, Mark
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:template match="/"> <List> <xsl:for-each-group select="/List/Entry" group-by="Subject"> <Entry> <xsl:copy-of select="Subject"/> <xsl:for-each select="current-group()"> <Item> <xsl:copy-of select="*[not(self::Subject)]"/> </Item> </xsl:for-each> </Entry> </xsl:for-each-group> </List> </xsl:template> </xsl:stylesheet>
-------------------------------- - <List> - <Entry> <Subject>Catalogs. Austria</Subject> <Author>Sieger, Hermann Walter</Author> - <Book> <Title>Zeppelinpost spezial-katalog</Title> </Book> - </Entry> - <Entry> <Subject>Catalogs. Austria</Subject> <Author>Kolar, Hugo</Author> - <Book> <Title>Katalog znamok Rakzsko 1850-1918</Title> <Edition>Second</Edition> </Book> </Locator> </Entry> </List>
<xsl:for-each select="current-group()"> <xsl:sort select="Author"/> <xsl:sort select="Book/Title"/>
This will sort by Author first, then by Book/Title. If no Author is present it will just sort by Book/Title.
cheers andrew
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Sorting under for-each-group, Mark Wilson | Thread | Re: [xsl] Sorting under for-each-gr, David Carlisle |
[xsl] Problems with Libxslt - GNOME, Luana Knoff | Date | Re: [xsl] Sorting under for-each-gr, David Carlisle |
Month |