XML/XLS: Bildergallerie mit Thumbnails ->Link auf Bild legen

cb120

Grünschnabel
Hallo,

ich tu jetzt schon ewig rum und bekomms einfach nicht hin.
Ich habe eine XML-Datei mit Bildinfos und eine XLS Datei. Mit Hilfe von Java-Code wandel ich die XML-Datei in eine XHTML-Datei um, wo dann eine Art Gallerie mit Thumbnails angezeigt wird. Beim Klick auf das Thumbnail wird über einen Link das Original-Bild geöffnet.

Ich habe nun folgendes Problem: Wie kann ich in XLS meinem Thumbnail einen Link auf eine andere Datei mitgeben (hier auf das Original-Bild (pfad) )?


Hier meine XML-Datei mit den Bildinfos:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<bilder>

<bild id="1">
               <title>Park</title>
               <thumbnail>bilder/thumbnail/small_pic01.jpg</thumbnail>
               <pfad>bilder/pic01.jpg</pfad>
               <datum>23.12.2008</datum>
               <notiz>Straße</notiz>
               <author>Max Mustermann</author>
               <format>JPEG</format>
               <size width="320" height="240"></size>
               
</bild>


Hier meine XLS-Datei mit den entsprechenden Anpassungen fürs XHTML-File:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

  <xsl:template match="bilder">
    <table border="1">
      <tr>
        <td><b>ID</b></td>
        <td><b>Titel</b></td>
        <td><b>Pfad</b></td>
        <td><b>Link</b></td>
        <td><b>Datum</b></td>
        <td><b>Notiz</b></td>
        <td><b>Author</b></td>
        <td><b>Format</b></td>
        <td><b>Breite</b></td>
        <td><b>Höhe</b></td>
      </tr>
      <xsl:apply-templates/>
    </table>
  </xsl:template>

  <xsl:template match="bild">
    <tr> 
      <td><xsl:value-of select="@id"/></td>
      <xsl:apply-templates/>
    </tr>
  </xsl:template>

 <xsl:template match="title">
    <td><xsl:value-of select="text()"/></td>
  </xsl:template>


<xsl:template match="thumbnail">
  <td>
          <a>
          <xsl:attribute name="href">
          <xsl:value-of select="." />
          </xsl:attribute>
          <xsl:attribute name="target">new</xsl:attribute>
          </a>    

    <img>
    <xsl:attribute name="src">
    <xsl:value-of select="."/>
    </xsl:attribute>
    </img>
  </td>
</xsl:template>
.
.
.
usw.
 
Hi.

Du könntest über XPath an die Information vom <thumbnail> Element aus gelangen:
XML:
<xsl:attribute name="href">
          <xsl:value-of select="../pfad" />
</xsl:attribute>
Ich würde aber nicht unbedingt für jedes Element ein eigenes Template erstellen und die Generierung einer Bild-Zeile in ein einzelnes Template zusammenfassen.

Gruß
 
Zuletzt bearbeitet von einem Moderator:
Hallo,

wenn du das Thumbnail-Bild anklicken willst, dann müsstest du das Template auch anders gestalten, z.B. so:
Code:
<xsl:template match="thumbnail">
  <td>
    <a>
      <xsl:attribute name="href">
        <xsl:value-of select="../pfad" />
      </xsl:attribute>
      <xsl:attribute name="target">new</xsl:attribute>
      <img>
        <xsl:attribute name="src">
          <xsl:value-of select="." />
        </xsl:attribute>
      </img>
    </a>
  </td>
</xsl:template>
Übrigens ist XLS ein Dateiformat für die Tabellenkalkulation von Microsoft. Du meinst aber sicherlich XSL.
 
Vielen Dank für die Hilfe. Genauso wollte ichs haben.

Natürlich meinte ich xsl. Da hab ich mich wohl verschrieben.
 
Zurück