Slayer8 Geschrieben 21. November 2004 Geschrieben 21. November 2004 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!
etreu Geschrieben 22. November 2004 Geschrieben 22. November 2004 Wie sieht denn der resultierende HTML-Quelltext aus? Vielleicht fehlt einfach eine Endung wie .jpg, oder .png.
dorti Geschrieben 22. November 2004 Geschrieben 22. November 2004 Wenn der Pfad und Name für das Bild stimmen, bindest Du es so ein: <img src="{@Bild}"/> Damit müsste es funktionieren.
Slayer8 Geschrieben 22. November 2004 Autor Geschrieben 22. November 2004 Letzteres hat geklappt, super!
Slayer8 Geschrieben 22. November 2004 Autor Geschrieben 22. November 2004 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'.
dorti Geschrieben 23. November 2004 Geschrieben 23. November 2004 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.
Slayer8 Geschrieben 23. November 2004 Autor Geschrieben 23. November 2004 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....
dorti Geschrieben 24. November 2004 Geschrieben 24. November 2004 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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden