Subject: Re: [xsl] Muenchain method From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Sat, 27 May 2017 08:33:32 -0000 |
You might want to move to XSLT 2.0 with nested for-each-group where these kind of problems don't occur, in your case you have defined the key for any elements but only want to apply it with Muenchian grouping for a subtree, therefore you have to use a key concatenating the id of the parent node and the value you want to use: <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:fox="http://xml.apache.org/fop/extensions" version="1.1" exclude-result-prefixes="fo"> <xsl:output method="html" indent="yes"/> <xsl:key name="idxaut" match="datafield[@tag=100]|datafield[@tag=700]|datafield[@tag=710]" use="."/> <xsl:key name="idxtit" match="indexsort" use="concat(generate-id(..), '|', .)"/> <xsl:template name="AUTHOR" match="collection"> <xsl:for-each select="level_1/record/datafield[@tag=100]|level_1/record/datafield[@tag=700]|level_1/record/datafield[@tag=710]"> <xsl:sort select="normalize-space(.)" lang="de-CH"/> <xsl:sort select="../indexsort"/> <!-- on affiche l'auteur --> <xsl:for-each select="current()[count(. | key('idxaut', .)[1]) = 1]"> <b> <xsl:value-of select="."/> </b> <br/> <xsl:for-each select="key('idxaut', .)"> <xsl:sort select="../indexsort"/> <xsl:for-each select="../indexsort[count(. | key('idxtit', concat(generate-id(..), '|', .))[1]) = 1]"> <xsl:for-each select="key('idxtit', concat(generate-id(..), '|', .))"> <!--<xsl:if test="position()=1"> --> <xsl:for-each select="../datafield[@tag=245]"> <xsl:value-of select="."/> </xsl:for-each> <xsl:value-of select="concat(' | ',../recno)"/> <br/> <!--</xsl:if> --> </xsl:for-each> </xsl:for-each> </xsl:for-each> </xsl:for-each> </xsl:for-each> </xsl:template> <xsl:template match="collection"> <html> <xsl:call-template name="AUTHOR"/> </html> </xsl:template> </xsl:stylesheet> Am 26.05.2017 um 22:58 schrieb Jean-Pierre Lamon gipi@xxxxxxxxxx: > > For a bibliographic list, I'm trying to display author/title index > entries. I'm using the Muenchain method to group books by author/titles. > There's an index for author and titles. Titles are generated from the > indexsort XML node. > Could you try to generate this list with the attached files and see > the result : > The problem : > *Affentranger, Urban 1944- (DE-588)1072229609 > *Die Renovation der Klosterkirche Disentis im 19. und 20. Jahrhundert > / Urban Affentranger | 6 > Turnen und Sport an der katholischen Kantonsschule Disentis > 1833-1842 / Urban Affentranger | 5 > Turnen und Sport an der katholischen Kantonsschule Disentis > 1833-1842 / Urban Affentranger | 7 > *Blum, Roger 1945- (DE-588)131690035* > Alfred Oberer - Steuermann im Hintergrund / Roger Blum | 3 > Die Mechanik der Politik in Baselland / Roger Blum | 2 > *Czouz-Tornare, Alain-Jacques 1957- (DE-588)158860152* > *Pavillon, Olivier* > Introduction / Olivier Pavillon | 1 > * -->*/Introduction / Alain-Jacques Czouz-Tornare | 4 *--> should be > under Czouz-Tornare*/ > *//*
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Muenchain method, Jean-Pierre Lamon gi | Thread | Re: [xsl] Muenchain method, Jean-Pierre Lamon gi |
[xsl] Muenchain method, Jean-Pierre Lamon gi | Date | Re: [xsl] Muenchain method, Jean-Pierre Lamon gi |
Month |