Thomas J.S.: Zusammenfassung bei gleicher Bedingung in einer Zeile

Beitrag lesen

Hallo,

danke für den Code, leider funktioniert er nur für das angezeigte Beispiel. Sobald ich mehr Daten in meiner XML Datei habe stimmt die Anzahl nicht mit den Tagen überein und er schreibt die Daten z.T. einfach hinter die Tabelle..

ehmm ... ja, das habe ich übersehen.

hier der coee dann mal nach Datum/Namen sortiert, mit Zählung von User/Tag usw.

  
<?xml version="1.0" encoding="UTF-8"?>  
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">  
	<xsl:key name="datum" match="tables/table" use="datum"/>  
	<xsl:key name="name" match="tables/table" use="name"/>  
	<xsl:template match="/">  
		<html>  
			<head>  
				<title>Gruppierung</title>  
			</head>  
			<body>  
				<table border="1">  
					<tr>  
						<td>Nutzer</td>  
						<xsl:for-each select="tables/table[generate-id() = generate-id(key('datum', datum)[1])]">  
							<xsl:sort select="datum" />  
							<td>  
								<xsl:value-of select="datum"/>  
							</td>  
						</xsl:for-each>  
					</tr>  
					<xsl:for-each select="tables/table[generate-id() = generate-id(key('name', name)[1])]">  
						<xsl:sort select="name"/>  
						<xsl:variable name="n" select="name"/>  
						<tr>  
							<td>  
								<xsl:value-of select="name"/>  
							</td>  
							<xsl:for-each select="/tables/table[generate-id() = generate-id(key('datum', datum)[1])]">  
								<xsl:sort select="datum" />  
								<xsl:choose>  
									<xsl:when test="key('datum', datum)[name = $n]">  
										<td>  
											<xsl:value-of select="count(key('datum', datum)[name = $n])"/>  
										</td>  
									</xsl:when>  
									<xsl:otherwise>  
										<td>-</td>  
									</xsl:otherwise>  
								</xsl:choose>  
							</xsl:for-each>  
						</tr>  
					</xsl:for-each>  
				</table>  
			</body>  
		</html>  
	</xsl:template>  
</xsl:stylesheet>  

Grüße
Thomas