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

Empfohlene Antworten

Hallo,

für eine Übungsaufgabe solle ein Beispiel für eine Videothek in XML realisiert werden. Nun möchte ich für jeden Artikel ein Bild einbinden, und der Bildname befindet sich in der XML Datei. Das sieht dann wie folgt aus:

<Sortiment>

<DVD>

<Titel Genre="Action" FSK="16" Laenge ="148 Min." Bild="cv_00012316" >Last Samurai</Titel>

Soweit so gut, aber wie bekomme ich nun den Namen des Bildes "cv_00012316" durch die XLS in die dafür vorgesehene Tabellenzelle?

Ich hatte mir das eigentlich so gedacht:

<xsl:for-each select="Titel">

<tr>

<td>

<span class="higlighted">Genre: </span><xsl:value-of select="@Genre"/> |

<span class="higlighted">FSK: </span><xsl:value-of select="@FSK"/> |

span class="higlighted">Laenge: </span><xsl:value-of select="@Laenge"/>

</td>

<td>

<img src="<xsl:value-of select="@Bild"/>" />

</td>

</tr>

</xsl:for-each>

Klappt aber leider nicht!

Wenn der Pfad und Name für das Bild stimmen, bindest Du es so ein:

<img src="{@Bild}"/>

Damit müsste es funktionieren.

Letzteres hat geklappt, super!

Und noch etwas, das Bild soll optinoal angezeigt werden, bzw. wenn der Artikel verfügbar ist.

DTD:

<!ELEMENT Infos (#PCDATA)>

<!ATTLIST Infos

verfuegbar (0|1) #REQUIRED

XSL

<xsl:choose>

<xsl:when Infos="verfuegbar()= 1">

Dies ist ein Test

</xsl:when>

</xsl:choose>

Die Fehlermeldung: ERROR: Description: Attribute 'Infos' is invalid on 'xsl:when'.

Und noch etwas, das Bild soll optinoal angezeigt werden, bzw. wenn der Artikel verfügbar ist.

DTD:

<!ELEMENT Infos (#PCDATA)>

<!ATTLIST Infos

verfuegbar (0|1) #REQUIRED

XSL

<xsl:choose>

<xsl:when Infos="verfuegbar()= 1">

Dies ist ein Test

</xsl:when>

</xsl:choose>

Die Fehlermeldung: ERROR: Description: Attribute 'Infos' is invalid on 'xsl:when'.

Probiers mal so:

<xsl:for-each select="Infos">

<xsl:if test="number(@Infos)=1">

Bild einfügen

</xsl:if>

</xsl:for-each>

Da Du ja keine andere Bedingung hast, würde ein IF schon reichen, ansonsten halt so:

<xsl:for-each select="Infos">

<xsl:choose>

<xsl:when test="number(@Infos)=1">Bild einfügen</xsl:when>

<xsl:otherwise>Kein Bild einfügen</xsl:otherwise>

</xsl:choose>

</xsl:for-each>

Jetzt musst Du halt nur aufpassen, in welcher Schleife Du bist. Wenn es nicht klappt, poste mal Dein XML.

Das klappt, besten dank!

Ich muss Zeile für Zeile begründen und beschreiben.....

Von daher, wofür ist das "test" ?

Sobald ich das änder, kommt eine Fehlermeldung....

Das steht immer in xsl:when und xsl:if. Innerhalb dieses Attributes wird die Bedingung festgelegt.

Beispiele:

<xsl:if test="INFO"> => Wenn es innerhalb dieses Knotens ein Element INFO gibt

<xsl:if test="INFO = 'DVD'"> => Wenn es innerhalb dieses Knotens ein Element INFO mit dem Value 'DVD' gibt

Man kann Abfragen kombinieren mit and, or und not().

<xsl:if test="INFO = 'DVD' or INFO = 'CD'"> => Wenn es innerhalb dieses Knotens ein Element INFO mit dem Value 'DVD' oder 'CD' gibt

<xsl:if test="not(INFO)"> => Wenn es innerhalb dieses Knotens KEIN Element INFO gibt

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Konto

Navigation

Suchen

Suchen

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.