pharao Napisano Grudzień 28 Zgłoś Share Napisano Grudzień 28 Witam serdecznie, chciałbym się was poradzić odnośnie galerii w xml. Jestem bardzo mało doświadczonym programistą XML i XSL więc proszę się nie śmiać Pytanie moje jest następujące. Stworzyłem małą galerię w XML. Za pomocą XSL próbuję stworzyć tabelkę wypełnioną zdjęciami z xml. Niestety wiem tylko jak zrobić to w jednym rzędzie, lub jednej kolumnie (tak jest teraz w załączonym pliku). Czy dałoby się zrobić, i jak to zrobić, by tabelka miała 4 kolumny? Zawsze, niezależnie od ilości zdjęć. Plik XSL(nie chciał się załączyć): <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <xsl:apply-templates/> </xsl:template> <xsl:template match="galeria"> <html> <head> <style type="text/css"> td { border: 1px solid black; padding: 5px; text-align: center;} </style> </head><body> <table style="border: 1px solid black;"> <xsl:for-each select="zdjecie"> <tr> <td><xsl:element name="a"><xsl:attribute name='href'>duze/<xsl:value-of select='plik'/>.jpg</xsl:attribute><xsl:element name='img'><xsl:attribute name='src'><xsl:value-of select='plik'/>.jpg</xsl:attribute></xsl:element></xsl:element><br/><xsl:value-of select="opis"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> galeria.xml Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
mervin Napisano Grudzień 30 Zgłoś Share Napisano Grudzień 30 Sprawdź poniższy kod, nie jestem pewien czy działa: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:param name="num-of-cols">4</xsl:param> <xsl:template match="root"> <table border="1"> <xsl:for-each select="sth[position() mod $num-of-cols = 1]"> <tr> <xsl:for-each select="self::sth | following-sibling::sth[position() < $num-of-cols]"> <td> <xsl:element name="a"><xsl:attribute name='href'>duze/<xsl:value-of select='plik'/>.jpg</xsl:attribute><xsl:element name='img'><xsl:attribute name='src'><xsl:value-of select='plik'/>.jpg</xsl:attribute></xsl:element></xsl:element><br/><xsl:value-of select="opis"/> </td> </xsl:for-each> <xsl:if test="count(following-sibling::sth) < $num-of-cols - 1"> <xsl:call-template name="add-empty-cells"> <xsl:with-param name="count" select="$num-of-cols - count(following-sibling::sth) - 1 "/> </xsl:call-template> </xsl:if> </tr> </xsl:for-each> </table> </xsl:template> <xsl:template name="add-empty-cells"> <xsl:param name="count"/> <td>-</td> <xsl:if test="$count > 1"> <xsl:call-template name="add-empty-cells"> <xsl:with-param name="count" select="$count - 1"/> </xsl:call-template> </xsl:if> </xsl:template> </xsl:stylesheet> Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.