Mit <xsl:for-each> Bilder in einer Tabelle ausgeben?
Manfred Mayer
- xsl
Hallo!
Ich hab ein kleines Problem. Ich möchte eine XML-Datei erstellen, in der ich von mehreren Personen den jeweiligen Namen, Beruf, Email und ein Bild ausgeben möchte. Mit den Namen, Berufen und der Mail hab ich das schon soweit mit xsl:for-each und <xsl:value-of select> hinbekommen, nur bei den Bildern funktioniert das so nicht mehr.
Hier die XML-Datei:
<inhalt>
<mitarbeiter>
<name>Person1</name>
<beruf>Beruf1</beruf>
<img src="bild"/>
<mail>bla@bla.de</mail>
</mitarbeiter>
<mitarbeiter>
<name>Person2</name>
<beruf>Beruf2</beruf>
<img src="bild2"/>
<mail>bla@bla.de</mail>
</mitarbeiter>
</inhalt>
Die dazugehörige XSL-Datei:
<xsl:template match="/">
<html>
<head>
</head>
<body>
<table border="0" width="40%">
<tr>
<td>
<td><b>Name</b></td>
<td><b>Beruf</b></td>
<td><b>E-Mail</b></td>
<td><b>Bild</b></td>
</td>
</tr>
<xsl:for-each select="inhalt/mitarbeiter">
<tr>
<td><center>
<td valign="top"><xsl:value-of select="name" /></td>
<td valign="top"><xsl:value-of select="beruf" /></td>
<td valign="top">
<a href="mailto:{mail}"><xsl:value-of select="mail"/></a></td>
<td valign="top"><xsl:value-of select="img"/></td></center>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
Weiß dafür jemand ne Lösung?
MfG
Manfred
Hi,
Hier die XML-Datei:
<img src="bild"/>
Die dazugehörige XSL-Datei:
<td valign="top"><xsl:value-of select="img"/></td></center>
Dein img-Element im XML ist ein leeres Element, es hat also keinen value.
Du willst vermutlich den Wert des src-Attributs ausgeben, also
<xsl:value-of select="img/@src" /> (wenn ich mich richtig erinnere)
cu,
Andreas
Hallo,
<td valign="top"><xsl:value-of select="img"/></td>
<td valign="top">
<img>
<xsl:attribute name="src">
<xsl:value-of select="img"/>
</xsl:attribute>
</img>
</td>
oder
<td valign="top">
<xsl:variable name="image" select="img"/>
<img src="{$image}"/>
</td>
MfG, Thomas
[Nachtrag:]
Ich habe das Ausgangsdokument nicht so genau angeschaut. Da src als Attribut definiert ist, ersetze in beiden von mir genannten Varianten:
select="img" durch select="img/@src"
MfG, Thomas
Danke für die schnellen Antworten,
jetzt funktioniert das endlich so,
wie ich mir das vorgestellt habe *g*.
MfG
Manfred