Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    5

    Tabella con due colonne per riga con Xsl

    Se io ho un documento xml come il seguente:
    codice:
    <articoli>
    <articolo>
    Definizione articolo 1
    </articolo>
    <articolo>
    Definizione articolo 2
    </articolo>
    <articolo>
    Definizione articolo 3
    </articolo>
    <articolo>
    Definizione articolo ...
    </articolo>
    </articoli>
    Come posso, con un foglio XSL, inserire questi dati in una table due alla volta come nel seguente esempio?
    codice:
    <table>
    <tr>
    <td>Definizione articolo 1</td>
    <td>Definizione articolo 2</td>
    </tr>
    <tr>
    <td>Definizione articolo 3</td>
    <td>Definizione articolo 4</td>
    </tr>
    <tr>
    <td>Definizione articolo 5</td>
    <td>Definizione articolo ...</td>
    </tr>
    </table>
    Ho provato in parecchi modi, ma non riesco assolutamente ad ottenere questo semplice risultato

    Ciao e grazie a tutti.

  2. #2
    Crea un template che ti stamperebbe tutto sulla stessa colonna e poi modificalo in modo tale che i tag <tr> e </tr> vengano messi solo se la posizione del tag <articolo> vale rispettivamente un numero dispari e un numero pari.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    5
    Grazie innanzitutto Diego++ per la rispota.

    Il tuo suggerimento è stata la prima cosa che ho provato, ma è impossibile inserire nelle condizioni i tag "<tr>" o "</tr>" singolarmente, altrimenti viene visualizzato un errore.

    Sembra una stupidaggine ma dopo una settimana non riesco a venirne a capo!

    Ciao

  4. #4
    Utente di HTML.it L'avatar di salasir
    Registrato dal
    Apr 2004
    Messaggi
    1,887
    Se non ho capito male, è lo stesso problema che avevo io. Se guardi http://forum.html.it/forum/showthread.php?s=&threadid=723548&highlight=tabell e+dinamiche questa discussione, trovi anche l'esempio da cui sono partito.


    Maurizio

  5. #5
    non l'ho provato ma vedi se ti può dare uno spunto
    codice:
    
    <xsl:template name="singleRow">
    
    <tr>
    <xsl:call-template name="stampaCelle">
    <xsl:with-param name="pos" select="position()"/>
    </xsl:call-template>
    </tr>
    </xsl:template>
    
    <xsl:template name="stampaCelle">
    <xsl:param name="pos" select="pos"/>
    <xsl:for-each select="articolo[position() > $pos]">
    <xsl:if test="(position() mod 3 != 0)">
    <td>
    
    <xsl:value-of select="current()/text()"/>
    </td>
    </xsl:if>
    </xsl:for-each>
    
    <xsl:if test="not(position() mod 3 != 0)">
    
    <xsl:call-template name="singleRow"/>
    </xsl:if>
    
    </xsl:template>
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.