Announcement

Collapse
No announcement yet.

XSL-Transformation gesucht

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • XSL-Transformation gesucht

    Die Aufgabe:

    Termine liegen in etwa folgender XML-Datei vor:

    ...
    <Termine>
    <Termin Ankunft=“08.03.09“ Abreise=“12.03.09“ Signal=“rot“></Termin>
    <Termin Ankunft=“16.03.09“ Abreise=“19.03.09“ Signal=“gelb“></Termin>
    </Termine>
    ...

    Auf einzelnen sprachabhängigen HTML-Seiten (geschlossenes CMS, daher Header nicht zugänglich) sollen mittels XSLT diese Daten in eine <table> transferiert werden.

    Es wird also die exakte Struktur der XML-Datei sowie eine individuelle für die jeweilige Zielsprache vorhandene Abbildungsstruktur (XSLT ) benötigt, die in etwa folgendes tabellarisches Bild liefert(wenn's die Darstellung hier nicht zerhaut):



    Arrival Departure Availability Registration
    08.03.09 12.03.09 full Registration
    16.03.09 19.03.09 seats left Registration



    Also im Code dann:

    <table align="center" border="1" cellpadding="4" width="60%">
    <thead style="font-weight: bold; color: rgb(102, 102, 102); background-color: rgb(255, 255, 153);">
    <tr>
    <td width="40">Arrival</td>
    <td width="40">Departure</td>
    <td align="center" width="80" nowrap="nowrap">Availability</td>
    <td align="center" width="20">Registration</td>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td>08.03.09</td>
    <td>12.03.09</td>
    <td align="center" style"backgr-image: url('http://images./rot.jpg'); " border="0" />full</td>
    <td align="center"><a href="mailto:[email protected]?subject=Registration%20for%20treatment&am p;body=I/we%20want%20to%20register%20%20_%20persons%20in%20 the%20time%20period%20between%2008.03.09%20and%201 2.03.09%20for%20live%20cell%20treatment.%20Please% 20send%20me/us%20the%20necessary%20documents%20for%20that.">Re gistration</a></td>
    </tr>

    ...

    Wer kann helfen?.

  • #2
    Um welches XSLT-Problem geht es? Zeige mal den vorliegenden Code.

    Comment


    • #3
      Es liegt noch gar kein Code vor. Der soll erst noch erstellt werden. Ich bin zwar Informatiker und traue mir zu, Anhand von einem einfachen Beispiel, die Sache zu lösen. Ich habe mich mit XSL halt erst sehr rudimentär beschäftigt...

      Comment


      • #4
        Rudimentäre Kenntnisse reichen hier aus. Ohne alle Details zu kennen, lässt sich nur ein grober Ansatz formulieren (im CSS müssten noch die zugehörigen Klassenselektoren eingebaut werden):
        Code:
        <xsl:template match="Termine">
          <table summary="Termine">
            <thead>
              <tr>
                <th>Arrival</th>
                <th>Departure</th>
                <th>Availability</th>
                <th>Registration</th>
              </tr>
            </thead>
            <tbody>
              <xsl:apply-templates select="Termin"/>
            </tbody>
          </table>
        </xsl:template>
        
        <xsl:template match="Termin">
          <tr>
            <td><xsl:value-of select="@Ankunft"/></td>
            <td><xsl:value-of select="@Abreise"/></td>
            <xsl:if test="@Signal='rot'"><td class="full">full</td></xsl:if>
            <xsl:if test="@Signal='gelb'"><td class="seats">seats</td></xsl:if>
            <td><a href="mailto:[email protected]">Registration</a></td>
          </tr>
        </xsl:template>

        Comment


        • #5
          Danke, das kann ich schon ganz gut verstehen. Wie sage ich denn dem XSL, welchen XML-file es verwenden soll?

          Comment


          • #6
            Ich kenne den Workflow und den verwendeten Prozessor nicht. Üblicherweise gibt man dem Prozessor die Ressourcen von XML-Dokument und XSLT-Stylesheet als Parameter mit.

            Comment


            • #7
              Ein einfaches Beispiel?

              Comment


              • #8
                ... oder Quellen, wo man sowas studieren kann ...

                Es soll auf einer HTML-Seite (via CMS) angezeigt werden, also dürfte der Prozessor doch beim Browser liegen, richtig?
                Zuletzt editiert von BillytheBit; 06.03.2009, 14:54.

                Comment


                • #9
                  Ich kenne das CMS nicht, vom Browser würde ich das eher fernhalten und z. B. mittels PHP auf dem Server transformieren.

                  Hier mal die Optionen für AltovaXML bzw. Saxon:

                  AltovaXML -xslt1 name.xsl -in name.xml -out name.out
                  java -jar saxon9.jar -o name.out name.xml name.xsl

                  XSLT/XPath-Grundlagen

                  Comment

                  Working...
                  X