Termine in XML zusammenfassen via xslt


#1
Moin zusammen,

ich bin relativ neu in der Materie und stehe nun vor der Aufgabe folgendes Thema zu lösen.

Dies ist das Quelldokument, welches ich angeliefert bekomme:
XML:
<?xml version="1.0" encoding="UTF-8"?>
<tabelle>
    <vorschaupaarungen>
        <vorschaupaarung>
            <spieldatum>Fr. 27.01.2017</spieldatum>
            <spieluhrzeit>15:30</spieluhrzeit>
            <heimmannschaft>Wesel</heimmannschaft>
            <gastmannschaft>Stuttgart</gastmannschaft>
        </vorschaupaarung>
        <vorschaupaarung>
            <spieldatum>Sa. 28.01.2017</spieldatum>
            <spieluhrzeit>16:30</spieluhrzeit>
            <heimmannschaft>Hannover</heimmannschaft>
            <gastmannschaft>Nürnberg</gastmannschaft>
        </vorschaupaarung>
        <vorschaupaarung>
            <spieldatum>Sa. 28.01.2017</spieldatum>
            <spieluhrzeit>17:30</spieluhrzeit>
            <heimmannschaft>Hamburg</heimmannschaft>
            <gastmannschaft>Berlin</gastmannschaft>
        </vorschaupaarung>
        <vorschaupaarung>
            <spieldatum>Sa. 28.01.2017</spieldatum>
            <spieluhrzeit>17:30</spieluhrzeit>
            <heimmannschaft>Basel</heimmannschaft>
            <gastmannschaft>Wien</gastmannschaft>
        </vorschaupaarung>
        <vorschaupaarung>
            <spieldatum>So. 29.01.2017</spieldatum>
            <spieluhrzeit>17:45</spieluhrzeit>
            <heimmannschaft>Baltrum</heimmannschaft>
            <gastmannschaft>Zypern</gastmannschaft>
        </vorschaupaarung>
        <vorschaupaarung>
            <spieldatum>So. 29.01.2017</spieldatum>
            <spieluhrzeit>12:45</spieluhrzeit>
            <heimmannschaft>Sylt</heimmannschaft>
            <gastmannschaft>Helgoland</gastmannschaft>
        </vorschaupaarung>
    </vorschaupaarungen>
</tabelle>
Meine XSL:
XML:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
    <xsl:strip-space elements="*"/>
    <xsl:output method="xml" indent="yes" encoding="utf-8"/>
    <xsl:template match="/">
        <doc xml:lang="de">
            <xsl:comment>Termine</xsl:comment>
            <p class="T_termine_fussball">
                <xsl:for-each select="tabelle/vorschaupaarungen/vorschaupaarung">
                    <xsl:if test="spieldatum=spieldatum">
                        <span class="C_termin">
                            <xsl:value-of select="normalize-space(substring(spieldatum,4,7))"/>
                        </span>
                        <span class="C_paarung">
                            <xsl:value-of select="heimmannschaft"/> - <xsl:value-of select="gastmannschaft"/>
                        </span>
                    </xsl:if>
                </xsl:for-each>    
            </p>
        </doc>
    </xsl:template>
</xsl:stylesheet>
Hier ist es gewünscht, dass die Termine nach Datum sortiert werden. Also das Datum nur einmal auftaucht. Bei mir kommt aber leider - egal wie ich es auch versuche das bei raus:
XML:
<?xml version="1.0" encoding="utf-8"?>
<doc xml:lang="de"><!--Termine-->
   <p class="T_termine_fussball">
      <span class="C_termin">27.01.</span>
      <span class="C_paarung">Wesel - Stuttgart</span>
      <span class="C_termin">28.01.</span>
      <span class="C_paarung">Hannover - Nürnberg</span>
      <span class="C_termin">28.01.</span>
      <span class="C_paarung">Hamburg - Berlin</span>
      <span class="C_termin">28.01.</span>
      <span class="C_paarung">Basel - Wien</span>
      <span class="C_termin">29.01.</span>
      <span class="C_paarung">Baltrum - Zypern</span>
      <span class="C_termin">29.01.</span>
      <span class="C_paarung">Sylt - Helgoland</span>
   </p>
</doc>
So SOLL das XML am Ende aber aussehen:
XML:
<?xml version="1.0" encoding="utf-8"?>
<doc xml:lang="de">
   <artikel><!--Termine-->
      <p class="T_termine_fussball">
         <span class="C_termin">27.01.</span>
         <span class="C_paarung">Wesel - Stuttgart</span>
         <span class="C_termin">28.01.</span>
         <span class="C_paarung">Hannover - Nürnberg</span>
         <span class="C_paarung">Hamburg - Berlin</span>
         <span class="C_paarung">Basel - Wien</span>
         <span class="C_termin">29.01.</span>
         <span class="C_paarung">Baltrum - Zypern</span>
         <span class="C_paarung">Sylt - Helgoland</span>
      </p>
   </artikel>
</doc>
Kann mir vielleicht jemand nen Tipp geben, wie ich zu meinem SOLL XML komme?
Ich komme auch durch die Suche im Web nicht großartig weiter - ich habe hier vermutlich nur einen Denkfehler.
Vielleicht kann ja einer schnell Abhilfe leisten.

Besten Dank im Voraus
Marshall
 
#5
Lässt sich das also nicht direkt mit xslt lösen?
Es geht mir hier ja nicht um den Aufruf dieser Transformation sondern darum, dass ich nicht das Ergebnis erhalte, welches ich benötige...