m0ps: Elemente gruppieren

Beitrag lesen

Hallo zusammen!
ich habe ein Problem und vielleicht könnt ihr mir weiterhelfen:
Ich habe ein xml-Dokument in dem mehrere Elemente wie in dem folgenden Beispiel vorliegen:

<person>
  <name>Hans</name>
  <spitzname>Hansi</spitzname>
  <spitzname>H</spitzname>
  <spitzname>Hasi</spitzname>
</person>
<person>
  <name>Johannes</name>
  <spitzname>Jo</spitzname>
  <spitzname>Joe</spitzname>
</person>
<person>
  <name>Jonathan</name>
  <spitzname>Jo</spitzname>
  <spitzname>Joe</spitzname>
  <spitzname>Jojo</spitzname>
</person>

Jetzt soll nach Spitznamen ausgegeben werden. Also zum Beispiel so:

Jo:
Johannes
Jonathan

Joe:
Johannes
Jonathan

Hansi:
Hans

Jojo:
Jonathan

...

Das ganze soll am Besten schön in einer Tabelle angeordnet sein, also oben in der ersten Zeile steht der Spitzname und darunter dann nacheinander die Namen der Personen.

Nur leider weiß ich nicht wie ich das anstellen soll. Bin noch Neuling in Sachen XSL/XML.
Bin mittlerweile soweit, dass er mir schonmal alle Personen nach Spitznamen ausgibt...
Hab das mit

<xsl:for-each select="//Spitzname">
    <xsl:sort select="."/>
    <xsl:if test="not(preceding-sibling::Spitzname = .)">
      <xsl:value-of select="."/><br/>
    </xsl:if>
</xsl:for-each>

gemacht. Bin jetzt aber völlig ratlos, wie ich da "Gruppen" bilden soll. Er gibt mir ja jetzt nur nacheinander die Namen nach Spitzname sortiert aus.

Vielleicht kann mir ja jemand helfen oder einen Tipp geben.
Grüße
M0ps