Nachtrag der aufgeräumten Struktur (hier mit der kleiner-Abfrage):
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:variable name="refdate" select="/gigs/refdate"/>
<xsl:template match="gigs">
<gigs>
<xsl:apply-templates select="gig">
<xsl:sort data-type="number" select="substring(date,7,4)"/>
<xsl:sort data-type="number" select="substring(date,4,2)"/>
<xsl:sort data-type="number" select="substring(date,1,2)"/>
</xsl:apply-templates>
</gigs>
</xsl:template>
<xsl:template match="gig">
<xsl:variable name="isodate"
select="concat(substring(date,7,4),substring(date,4,2),substring(date,1,2))"/>
<xsl:if test="$isodate < $refdate">
<gig>
<title><xsl:value-of select="title"/></title>
<id><xsl:value-of select="id"/></id>
<imgurl><xsl:value-of select="imgurl"/></imgurl>
<date><xsl:value-of select="date"/></date>
<time><xsl:value-of select="time"/></time>
<where><xsl:value-of select="where"/></where>
<privat><xsl:value-of select="privat"/></privat>
<hp><xsl:value-of select="hp"/></hp>
</gig>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Grüße,
Thomas