Forum Webmasterskie: Galeria xml - Forum Webmasterskie

Skocz do zawartości

Strona 1 z 1
  • Nie możesz napisać tematu
  • Nie możesz odpowiedzieć

Galeria xml

#1 Użytkownik nie jest zalogowany   pharao Ikona

  • Przedszkolak
  • Pip
  • Grupa Members
  • Postów 1
  • Rejestracja 29-grudzień 09

Napisano 29 grudzień 2009 - 00:16

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>

Załączone pliki


0

#0 Reklama

  • WebForum.pl
  • Grupa Advert

Napisano --



#2 Użytkownik nie jest zalogowany   mervin Ikona

  • Administrator
  • Ikona
  • Grupa Administrators
  • Postów 143
  • Rejestracja 17-lipiec 09

Napisano 30 grudzień 2009 - 19:04

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() &lt; $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) &lt; $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 &gt; 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>

0

Strona 1 z 1
  • Nie możesz napisać tematu
  • Nie możesz odpowiedzieć

Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych