XML | XML-Schema | XPath | XSL-T | XSL-FO | XQuery | XProc | SVG |
XSL-T / Die XSLT - Struktur / xsl:for-each-group / Zusammengesetzte Schlüssel
![]() |
![]() |
➪ Daneben besteht die Möglichkeit, über die concat-Funktion zusammengesetzte Schlüssel zu erstellen.
In der ausgewählten Nodeliste "//Ort/Mensch/Kauf" haben Sie mit group-by='concat(bez, ' ', ../../name)' einen Schlüssel generiert, der seine Informationen aus dem Kauf-Childnode bez sowie aus dem "Ort/name" (ausgehend von "Kauf" erreichbar durch "../../name") bezieht. Auf diese Weise kommt jede relevante Kombination aus Ortsname und Artikelname zustande, die Sie mit <xsl:value-of select='current-grouping-key()' /> darstellen können.
Innerhalb dieser jeweiligen Gruppierung (<xsl:for-each select='current-group()'>, dessen aktueller Node immer noch Kauf ist) können Sie nun noch die Einzelinformationen ermitteln, etwa mit <xsl:value-of select='../vorname' />, das sich auf den Kauf-Parentnode Mensch bezieht.
<xsl:template match="/">
<html>
<body>
<table border="1">
<xsl:for-each-group
select="//Ort/Mensch/Kauf"
group-by="concat(bez, ' ', ../../name)">
<tr>
<td valign="top">
<xsl:value-of
select="current-grouping-key()" />
</td>
<td>
<table>
<xsl:for-each
select="current-group()">
<xsl:sort select="anzahl"
data-type="number"
order="ascending" />
<tr>
<td>
<xsl:value-of select="../vorname" />
</td>
<td>
<xsl:value-of select="../name" />
</td>
<td>
<xsl:value-of select="anzahl" />
</td>
</tr>
</xsl:for-each>
</table>
</td>
</tr>
</xsl:for-each-group>
</table>
</body>
</html>
</xsl:template>
wg / 10. August 2020
Fragen? Anmerkungen? Tipps?
Bitte nehmen Sie Kontakt zu mir auf.
V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn
☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de