Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Bilder in XML verlinken

Empfohlene Antworten

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!

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>

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.

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

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

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 ;)

Ach ja, mein Fehler :-)

Danke für die Hilfe!!!

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.