Elemente gruppieren
m0ps
- xsl
0 m0ps
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
Hm, hat keiner irgendeine Lösung?
Hallo,
Hm, hat keiner irgendeine Lösung?
Für XSLT 1.0 oder für 2.0?
Grüße
Thomas