Hallo benni,
Mein Versuch dreht sich bislang um folgenden code (Für Januar):
<xsl:for-each select="Termine/Termin">
<xsl:if test="01 = substring(Date,4,2)">
<xsl:value-of select="count(Date)"/>
</xsl:if>
</xsl:for-each>
>
> > Leider gibt mir die Transformation dann folgendes aus: 11 - er prüft die Bedinung für jeden einzelnen Tag Termin und zählt dann die Ergebnisse zusammen, aber nicht für alle Termin-Tags.
>
> Ansatz:
> ~~~xml
<xsl:template match="Person">
> <p><xsl:value-of select="Name"/>
> <xsl:variable name="anzahl" select="count(Termine/Termin[substring(Date,4,2)='01'])"/>
> <xsl:if test="$anzahl > 0">
> <br /><xsl:text>01: </xsl:text><xsl:value-of select="$anzahl"/>
> </xsl:if>
>
> <xsl:variable name="anzahl" select="count(Termine/Termin[substring(Date,4,2)='02'])"/>
> <xsl:if test="$anzahl > 0">
> <br /><xsl:text>02: </xsl:text><xsl:value-of select="$anzahl"/>
> </xsl:if>
> </p>
> </xsl:template>
Grüße,
Thomas
Ok, Super! Klappt auch. Ich hab derweil zwar auch schon einen weg gefunden. Die Ergebnisse weichen ja nicht sonderlich von einander ab..
<xsl:value-of select="count(//Date[substring(.,4,2) = '01'])"/>
Jetzt muss ich das ganze nur noch rollierend hinbekommen. Soll heißen, für die letzten 12 Monate soll er mir die Ergebnisse anzeigen. Also für heute: ab Oktober 2007 bis September 2008. Dazu hab ich in der xml noch einen Tag <created> - das gibt mir das aktuelle Datum aus. Derzeit ist das ganze bei mir noch ein bisschen unelegant, da ich 12 Prüfungen drinn habe und dann die jeweilige bei Übereinstimmung nutze:
Die Variable Monat1 ist aus <created>:
<xsl:when test="$Monat1=01">
<xsl:value-of select="count(//Date[substring(.,4,2) = '01'])"/>
<xsl:text> </xsl:text>
<xsl:value-of select="count(//Date[substring(.,4,2) = '02'])"/>
...
</xsl:when>
<xsl:when test="$Monat1=02">
<xsl:value-of select="count(//Date[substring(.,4,2) = '02'])"/>
<xsl:text> </xsl:text>
<xsl:value-of select="count(//Date[substring(.,4,2) = '03'])"/>
usw. das geht bestimmt noch besser. Aber funktional ist es allemal..