seskupovat lze podle různých kritérií
current-group()
– položky patřící do
aktuálně zpracovávané skupiny
current-grouping-key()
– hodnota, podle
které se poznalo, že spolu položky patří do jedné skupiny
Příklad 7. Jednoduché seskupení –
seskupeni-autori.xsl
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0"> <xsl:template match="konference"> <html> <head> <title>Program <xsl:value-of select="název"/></title> <style> body { font-family: Calibri, sans-serif; } h1 { text-align: center; background-color: navy; color: yellow; } h2,h3 { color: navy; } </style> </head> <body> <h1><xsl:value-of select="název"/></h1> <xsl:for-each-group select="přednáška" group-by="autor/jméno"> <xsl:sort select="count(current-group())" order="descending"/> <h2><xsl:value-of select="current-grouping-key()"/></h2> <ol> <xsl:for-each select="current-group()"> <xsl:sort select="xs:date(@datum)"/> <xsl:sort select="xs:time(@zacatek)"/> <li> <xsl:value-of select="název"/> (<xsl:value-of select="format-date(xs:date(@datum), '[F]')"/>, <xsl:value-of select="format-time(xs:time(@začátek), '[H]:[m01]')"/>–<xsl:value-of select="format-time(xs:time(@konec), '[H]:[m01]')"/>) </li> </xsl:for-each> </ol> </xsl:for-each-group> </body> </html> </xsl:template> </xsl:stylesheet>