1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Termine in XML zusammenfassen via xslt

Dieses Thema im Forum "XML Technologien" wurde erstellt von MarshallEs, 8. Februar 2017.

  1. MarshallEs

    MarshallEs Grünschnabel

    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:
    Code (XML):
    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <tabelle>
    3.     <vorschaupaarungen>
    4.         <vorschaupaarung>
    5.             <spieldatum>Fr. 27.01.2017</spieldatum>
    6.             <spieluhrzeit>15:30</spieluhrzeit>
    7.             <heimmannschaft>Wesel</heimmannschaft>
    8.             <gastmannschaft>Stuttgart</gastmannschaft>
    9.         </vorschaupaarung>
    10.         <vorschaupaarung>
    11.             <spieldatum>Sa. 28.01.2017</spieldatum>
    12.             <spieluhrzeit>16:30</spieluhrzeit>
    13.             <heimmannschaft>Hannover</heimmannschaft>
    14.             <gastmannschaft>Nürnberg</gastmannschaft>
    15.         </vorschaupaarung>
    16.         <vorschaupaarung>
    17.             <spieldatum>Sa. 28.01.2017</spieldatum>
    18.             <spieluhrzeit>17:30</spieluhrzeit>
    19.             <heimmannschaft>Hamburg</heimmannschaft>
    20.             <gastmannschaft>Berlin</gastmannschaft>
    21.         </vorschaupaarung>
    22.         <vorschaupaarung>
    23.             <spieldatum>Sa. 28.01.2017</spieldatum>
    24.             <spieluhrzeit>17:30</spieluhrzeit>
    25.             <heimmannschaft>Basel</heimmannschaft>
    26.             <gastmannschaft>Wien</gastmannschaft>
    27.         </vorschaupaarung>
    28.         <vorschaupaarung>
    29.             <spieldatum>So. 29.01.2017</spieldatum>
    30.             <spieluhrzeit>17:45</spieluhrzeit>
    31.             <heimmannschaft>Baltrum</heimmannschaft>
    32.             <gastmannschaft>Zypern</gastmannschaft>
    33.         </vorschaupaarung>
    34.         <vorschaupaarung>
    35.             <spieldatum>So. 29.01.2017</spieldatum>
    36.             <spieluhrzeit>12:45</spieluhrzeit>
    37.             <heimmannschaft>Sylt</heimmannschaft>
    38.             <gastmannschaft>Helgoland</gastmannschaft>
    39.         </vorschaupaarung>
    40.     </vorschaupaarungen>
    41. </tabelle>
    Meine XSL:
    Code (XML):
    1. <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
    2.     <xsl:strip-space elements="*"/>
    3.     <xsl:output method="xml" indent="yes" encoding="utf-8"/>
    4.     <xsl:template match="/">
    5.         <doc xml:lang="de">
    6.             <xsl:comment>Termine</xsl:comment>
    7.             <p class="T_termine_fussball">
    8.                 <xsl:for-each select="tabelle/vorschaupaarungen/vorschaupaarung">
    9.                     <xsl:if test="spieldatum=spieldatum">
    10.                         <span class="C_termin">
    11.                             <xsl:value-of select="normalize-space(substring(spieldatum,4,7))"/>
    12.                         </span>
    13.                         <span class="C_paarung">
    14.                             <xsl:value-of select="heimmannschaft"/> - <xsl:value-of select="gastmannschaft"/>
    15.                         </span>
    16.                     </xsl:if>
    17.                 </xsl:for-each>    
    18.             </p>
    19.         </doc>
    20.     </xsl:template>
    21. </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:
    Code (XML):
    1. <?xml version="1.0" encoding="utf-8"?>
    2. <doc xml:lang="de"><!--Termine-->
    3.    <p class="T_termine_fussball">
    4.       <span class="C_termin">27.01.</span>
    5.       <span class="C_paarung">Wesel - Stuttgart</span>
    6.       <span class="C_termin">28.01.</span>
    7.       <span class="C_paarung">Hannover - Nürnberg</span>
    8.       <span class="C_termin">28.01.</span>
    9.       <span class="C_paarung">Hamburg - Berlin</span>
    10.       <span class="C_termin">28.01.</span>
    11.       <span class="C_paarung">Basel - Wien</span>
    12.       <span class="C_termin">29.01.</span>
    13.       <span class="C_paarung">Baltrum - Zypern</span>
    14.       <span class="C_termin">29.01.</span>
    15.       <span class="C_paarung">Sylt - Helgoland</span>
    16.    </p>
    17. </doc>
    So SOLL das XML am Ende aber aussehen:
    Code (XML):
    1. <?xml version="1.0" encoding="utf-8"?>
    2. <doc xml:lang="de">
    3.    <artikel><!--Termine-->
    4.       <p class="T_termine_fussball">
    5.          <span class="C_termin">27.01.</span>
    6.          <span class="C_paarung">Wesel - Stuttgart</span>
    7.          <span class="C_termin">28.01.</span>
    8.          <span class="C_paarung">Hannover - Nürnberg</span>
    9.          <span class="C_paarung">Hamburg - Berlin</span>
    10.          <span class="C_paarung">Basel - Wien</span>
    11.          <span class="C_termin">29.01.</span>
    12.          <span class="C_paarung">Baltrum - Zypern</span>
    13.          <span class="C_paarung">Sylt - Helgoland</span>
    14.       </p>
    15.    </artikel>
    16. </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
     
  2. Halfbax

    Halfbax Erfahrenes Mitglied

    In welcher Programmier-/Scriptsprache möchtest du das Ganze behandeln?
     
  3. MarshallEs

    MarshallEs Grünschnabel

    Es wird vermutlich mit einem Shell Skript abgefragt aber ist noch nicht ganz klar.
     
  4. Halfbax

    Halfbax Erfahrenes Mitglied

  5. MarshallEs

    MarshallEs Grünschnabel

    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...
     
Die Seite wird geladen...