Klaus: XSL Gruppierung / leere Gruppen herausfiltern

Beitrag lesen

Hallo zusammen!

ich habe ein problem mit xsl gruppierungen. und zwar ist es so, dass ich folgende xml-struktur habe.

<?xml version="1.0"?>
<?xml-stylesheet href="filme.xsl" type="text/xsl" ?>
 <filme>
 <!-- tag 1 -->
 <film id="horror" tag="day1" titel="Horror-Movie1" />
 <film id="horror" tag="day1" titel="Horror-Movie2" />
 <film id="adult" tag="day1" titel="Adult-Movie1" />
 <film id="adult" tag="day1" titel="Adult-Movie2" />

<!-- tag2 -->
 <film id="horror" tag="day2" titel="Horror-Movie3" />
 <film id="horror" tag="day2" titel="Horror-Movie4" />

<!-- tag3 -->
 <film id="horror" tag="day3" titel="Horror-Movie5" />
 <film id="horror" tag="day3" titel="Horror-Movie6" />
 <film id="adult" tag="day3" titel="Adult-Movie3" />
 <film id="adult" tag="day3" titel="Adult-Movie4" />
 </filme>

hierbei soll eine unterteilung in tag/genre(id)/filmtitel erfolgen.
ich wende dazu folgendes stylesheet an:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:key match="/filme/film" name="tagSchlüssel" use="@tag"/>
 <xsl:key match="/filme/film" name="genreSchlüssel" use="@id"/>

<xsl:template match="/">
  <xsl:for-each select="/filme/film[generate-id(.)=generate-id(key('tagSchlüssel',@tag)[1])]">
   <u>
    <b> Tag ** <xsl:value-of select="@tag"/></b>
   </u>
   <br/>

<xsl:variable name="tagSchlüsselID"  select="@tag"/>
   <xsl:for-each select="/filme/film[generate-id(.)=generate-id(key('genreSchlüssel',@id)[1])]">
    Genre :
    <b><xsl:value-of select="@id"/></b> **
    <br/>

<xsl:for-each select="key('genreSchlüssel',@id)[@tag=$tagSchlüsselID]">
     <br/>Filmtitel:
      <b><xsl:value-of select="@titel"/></b>
      <br/>
   </xsl:for-each>
   <br/>
   </xsl:for-each>
   <hr/>
  </xsl:for-each>
 </xsl:template>
</xsl:stylesheet>

als ergebnis erhalte ich folgendes:

Tag ** day1
Genre : horror **

Filmtitel: Horror-Movie1

Filmtitel: Horror-Movie2

Genre : adult **

Filmtitel: Adult-Movie1

Filmtitel: Adult-Movie2

--------------------------------------------------------------------------------
Tag ** day2
Genre : horror **

Filmtitel: Horror-Movie3

Filmtitel: Horror-Movie4

Genre : adult **

--------------------------------------------------------------------------------
Tag ** day3
Genre : horror **

Filmtitel: Horror-Movie5

Filmtitel: Horror-Movie6

Genre : adult **

Filmtitel: Adult-Movie3

Filmtitel: Adult-Movie4

nun das problem: wie kann ich es hinbekommen, dass die überschriften für leere gruppen (hier: day2/adult; es kann sich aber auch um das genre "horror" handeln) nicht ausgegeben werden???

wäre für jede hilfe dankbar,

grüsse

Klaus