XSLT - Datensätze kombinieren

mtk-flo

Erfahrenes Mitglied
Hallo,
Ich habe eine folgende Datenstruktur in meinem XML:
Code:
<Zeitraum>
   <Quartal />
   <Jahr />
</Zeitraum>

Nun möchte ich mehrere Quartal in einem Jahr zusammen fassen.
Also aus:
Code:
<Zeitraum>
   <Quartal>1</Quartal>
   <Jahr>2007</Jahr>
</Zeitraum>
<Zeitraum>
   <Quartal>2</Quartal>
   <Jahr>2007</Jahr>
</Zeitraum>

Soll werden:
Im 1. und 2. Quartal 2007

Im Moment bekomm ich nur:
Im 1. Quartal 2007
Im 2. Quartal 2007

Wie kann ich mehrere Quartal im gleichen Jahr kombinieren !?
 
Hi.

Du mußt die Daten am besten mit Hilfe eines Schlüssels erstmal "gruppieren". Etwa so:
XML:
  <xsl:key name="jahre" match="Zeitraum" use="Jahr"/>

  <xsl:template match="/jahr">
    <summary>
      <xsl:apply-templates select="Zeitraum[generate-id(.) = generate-id(key('jahre', Jahr)[1])]"/>
    </summary>
  </xsl:template>


  <xsl:template match="Zeitraum">
    <xsl:text>Im </xsl:text>
    <xsl:for-each select="key('jahre', Jahr) ">
      <xsl:value-of select="Quartal"/>
      <xsl:text>. </xsl:text>
    </xsl:for-each>
    <xsl:text>Quartal </xsl:text>
    <xsl:value-of select="Jahr"/>
  </xsl:template>
Siehe http://www.jenitennison.com/xslt/grouping/

Gruß
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück