Zum Inhalt springen

Bilder in XML verlinken


aGGroLadY

Empfohlene Beiträge

Hallo zusammen,

ich will eine kleine Onlinegalerie machen.

Dazu hab ich eine XML und DTD Datei mit den Inhalten eine XSL Datei für die Formatierung und in HTML wird mit Java umgewandelt.

Funktioniert soweit auch alles. Nur die Bilder werden nicht angezeigt.

So siehts im DTD aus:

<!ELEMENT bilddatei (EMPTY)>
Und hier die XML:
  <bilddatei bild="Pfadangabe" />

Ist wahrscheinlich eine kleine Sache, aber ich bin leider nicht so fit in XML.

Danke schon mal und viele Grüße!

Link zu diesem Kommentar
Auf anderen Seiten teilen

die xsl Datei sieht wie folgend aus:

<?xml version="1.0"?>

 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

 <xsl:template match="/">


 <html>

 <head><title>Bildergalerie</title></head>

 <body>


     <table border="1">

     <tr>

         <th>Name</th>

         <th>Bezeichnung</th>

     </tr>


     <xsl:for-each select="bildergalerie/bild">

         <tr>

             <td><xsl:value-of select="name"/></td>

             <td><xsl:value-of select="bezeichnung"/></td>

             <td><xsl:value-of select="bilddatei"/></td>

         </tr>

     </xsl:for-each>


     </table>


 </body></html>

 </xsl:template>

 </xsl:stylesheet>

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hab jetzt noch etwas daran gearbeitet und jetzt habe ich anscheinend noch ein Pfadproblem. Ich habe die Bilder in den selben Ordner kopiert in dem auch die xml und xls Datei liegt.

Hier mal alle meine Dateien:

XML:

<?xml version="1.0" encoding="ISO-8859-1"?>

<?xml-stylesheet type='text/xsl' href='bildergalerie.xsl'?>

<!DOCTYPE bildergalerie SYSTEM 'bildergalerie.dtd'>

<bildergalerie>

  <ueberschrift>Bildergalerie</ueberschrift>

  <bild>

  <name>Sarah im Park 1</name>

  <bezeichnung>Sarah im Gögginger Park im Frühjahr 2009</bezeichnung>

  <bilddatei bild="oeli1_klein.jpgsmall_oeli1_klein.jpg" />

  </bild>

  <bild>

  <name>Sarah im Park 2</name>

  <bezeichnung>Sarah im Gögginger Park im Frühjahr 2009</bezeichnung>

   <bilddatei bild="oeli2_klein.jpgsmall_oeli2_klein.jpg" />

  </bild>

  <bild>

  <name>Sarah im Park 3</name>

  <bezeichnung>Sarah im Gögginger Park im Frühjahr 2009</bezeichnung>

   <bilddatei bild="oeli2_klein.jpgsmall_oeli2_klein.jpg" />

  </bild>

</bildergalerie>
DTD:
<!ELEMENT bildergalerie (ueberschrift, bild)>

<!ELEMENT ueberschrift (#PCDATA)>

<!ELEMENT bild (name, bezeichnung, bilddatei?)>

<!ELEMENT name (#PCDATA)>

<!ELEMENT bezeichnung (#PCDATA)>

<!ELEMENT bilddatei (EMPTY)>

XSL:
<?xml version="1.0"?>

 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

 <xsl:template match="/">

 <html>

 <head><title>Bildergalerie</title></head>

 <body>

 	<table border="1">

     <tr>

         <th>Name</th>

         <th>Bezeichnung</th>

         <th>Foto</th>

     </tr>

    <xsl:for-each select="bildergalerie/bild">

      <tr>

        <td><xsl:value-of select="name"/></td>

        <td><xsl:value-of select="bezeichnung"/></td>

        <IMG BORDER="1">

        <xsl:attribute name="src">

        <xsl:value-of select="bilddatei/bild"/>

        </xsl:attribute>

      </IMG>

      </tr>

     </xsl:for-each>

     </table>

 </body>

 </html>

 </xsl:template>

 </xsl:stylesheet>

Ich bin mir auch nicht ganz klar ob EMPTY bei der DTD richtig ist.

Link zu diesem Kommentar
Auf anderen Seiten teilen

XSL is des DTD eigentlich recht egal.

aber dein XPATH für die bilder ist falsch. du suchst nach einem kind-knoten namens "bild" aber bild ist ein attribute von bilddatei. das müsste dann so aussehen:

<xsl:value-of select="bilddatei/attribute::bild"/>

die namen der bilddateien sehen auch eigenartig aus, fast als wären das 2 bilddateien

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

danke für die Antwort.

Es sieht jetzt schon besser aus, aber die Bilder werden nicht angezeigt sondern nur der Dateiname. Der sieht so seltsam aus, da ich die Bilder vorher mit einer Javaklasse skaliert habe.

Die aktuelle Ausgabe sieht wie folgt aus:

http://www.hs-augsburg.de/~jstrauss/bildergalerie.tiff

Link zu diesem Kommentar
Auf anderen Seiten teilen

hast du diesmal das img tag vergessen?

ich hab mal deine beispiele bei XSLT Tryit Editor v1.0 getestet, nur folgendes geändert


        <IMG BORDER="1">

        <xsl:attribute name="src">

        <xsl:value-of select="bilddatei/[COLOR="Red"]attribute::[/COLOR]bild" />

        </xsl:attribute>

      </IMG>

und der gibt das korrekt mit img tag wieder, die bilder hat er natürlich nicht ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...