Ik wil een kleine image gallery bouwen met behulp van xsl. De image gallery biedt plaats aan maximaal 6 afbeeldingen, maar soms zijn het er minder. Ook als er geen afbeelding meer is wil ik een wit vlakje tonen met een grijze lijn eromheen. Hiervoor heb ik de volgende code geschreven:
De output van deze code van deze code is het volgende:
Ik had graag gewild dat ie het volgende had geoutput:
Wat doe ik mis? Op één of ander manier werkt dit stukje dus niet goed:
<img src="{images/image[$i]}" />
XML:
1
2
3
4
5
6
| <images> <image type="mainimage">1.jpg</image> <image>2.jpg</image> <image>3.jpg</image> <image>4.jpg</image> </images> |
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| <xsl:template match="product"> <xsl:call-template name="for.loop"> <xsl:with-param name="i">1</xsl:with-param> <xsl:with-param name="count">6</xsl:with-param> </xsl:call-template> </xsl:template> <xsl:template name="for.loop"> <xsl:param name="i" /> <xsl:param name="count" /> <div id="thumb"> <xsl:if test="count(images/image)>=$i"> <b><xsl:value-of select="$i" /></b><img src="{images/image[$i]}" /> </xsl:if> </div> <xsl:if test="$i <= $count"> <xsl:call-template name="for.loop"> <xsl:with-param name="i"> <xsl:value-of select="$i + 1"/> </xsl:with-param> <xsl:with-param name="count"> <xsl:value-of select="$count"/> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template> |
De output van deze code van deze code is het volgende:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| <div id="thumb"> <b>1</b> <img src="1.jpg" /> </div> <div id="thumb"> <b>2</b> <img src="1.jpg" /> </div> <div id="thumb"> <b>3</b> <img src="1.jpg" /> </div> <div id="thumb"> <b>4</b> <img src="1.jpg" /> </div> <div id="thumb"></div> <div id="thumb"></div> <div id="thumb"></div> |
Ik had graag gewild dat ie het volgende had geoutput:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| <div id="thumb"> <b>1</b> <img src="1.jpg" /> </div> <div id="thumb"> <b>2</b> <img src="2.jpg" /> </div> <div id="thumb"> <b>3</b> <img src="3.jpg" /> </div> <div id="thumb"> <b>4</b> <img src="4.jpg" /> </div> <div id="thumb"></div> <div id="thumb"></div> <div id="thumb"></div> |
Wat doe ik mis? Op één of ander manier werkt dit stukje dus niet goed:
<img src="{images/image[$i]}" />