Hallo,
ich bräuchte eine 3 Level Gruppierung in XSLT 1.0, ich hab diese auch schon hinbekommen nur irgendwie scheint immer das erste Attribut falsch angezeigt zu werden...
ich bräuchte eine 3 Level Gruppierung in XSLT 1.0, ich hab diese auch schon hinbekommen nur irgendwie scheint immer das erste Attribut falsch angezeigt zu werden...
Code:
<?xml version="1.0" encoding="utf-8" ?> <xsl:stylesheet xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" version="1.0" exclude-result-prefixes="xsl ddwrt msxsl" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:date="http://exslt.org/dates-and-times" xmlns:str="http://exslt.org/strings" extension-element-prefixes="date str"> <xsl:output method="html" indent="no"/> <xsl:key name="title" match="z:row" use="@ows_Title" /> <xsl:key name="group" match="z:row" use="@ows_Group" /> <xsl:template match="/"> <xsl:variable name="allgroups"> <xsl:for-each select=".//rs:data/z:row[count(. | key('group', @ows_Group)[1]) = 1]"> <xsl:sort select="@ows_Group" /> <xsl:value-of select="@ows_Group"></xsl:value-of> </xsl:for-each> </xsl:variable> <xsl:for-each select=".//rs:data/z:row[count(. | key('title', @ows_Title)[1]) = 1]"> <xsl:sort select="@ows_Group"></xsl:sort> <xsl:sort select="@ows_Title" /> <xsl:variable name="string1" select="substring-after($allgroups, @ows_Group)"></xsl:variable> <xsl:variable name="string2" select="substring-before($allgroups, @ows_Group)"></xsl:variable> <xsl:if test="string-length($string1)>1 or string-length($string2)>1"> <xsl:variable name="last" select="@ows_Group"/> <xsl:if test="not(preceding-sibling::z:row[@ows_Group=$last])"> <b><xsl:value-of select="@ows_Group" /></b><br></br> </xsl:if> <xsl:value-of select="@ows_Title" />, <xsl:for-each select="key('title', @ows_Title)"> <xsl:sort select="@ows_Language" /> <xsl:value-of select="@ows_Language" /> () </xsl:for-each> <br></br> </xsl:if> </xsl:for-each> </xsl:template> </xsl:stylesheet>
Comment