Visualizzazione dei risultati da 1 a 4 su 4

Discussione: tabella e xsl

  1. #1

    tabella e xsl

    Ciao ragazzi, ho un piccolo problema.

    Sto creando una tabella a tre colonne, dove devo andare a scrivere delle offerte di un'agenzia di viaggi.

    La prima colonna deve contenere le offerte dell'italia, la seconda dell'europa e la terza altro.

    I dati li inserisco con un modulo xml, e il mio problema sta appunto nella stesura dell'xsl.

    In pratica ho creato un attributo che mi indica la provenienza (ecco l'xml):
    codice:
    <offerte>
         <nome scad_aa="" scad_mm="" scad_gg="" provenienza="" link="">#PCDATA</nome>
    </offerte>
    quello che vorrei fare io è che xsl si controlla l'attributo, quindi se è "it" me lo mette nella prima colonna, se è "eu" nella seconda e se è "altr" nella terza.

    Diciamo che ci sono quasi riuscito, infatti strutturando la tabella cosi:

    codice:
    <TABLE border="2" align="center">
    			<TR>
    				<TH>ITALIA</TH>
    				<TH>EUROPA</TH>
    				<TH>ALTRO</TH>
    			</TR>
    			<xsl:for-each select="root/offerte">
    			<xsl:sort select="nome" order="ascending" />
    					
    			<TR>
    				
    			<xsl:choose>
    				<xsl:when test="nome/@provenienza='it'">
    					<TD><xsl:value-of select="nome" /></TD>
    				</xsl:when>
    								
    				<xsl:when test="nome/@provenienza='eu'">
    					<TD></TD>
    					<TD><xsl:value-of select="nome" /></TD>
    				</xsl:when>
    								
    				<xsl:when test="nome/@provenienza='altr'">
    					<TD></TD>
    					<TD></TD>
    					<TD><xsl:value-of select="nome" /></TD>
    				</xsl:when>
    								
    								
    		</xsl:choose>	
    				
    		</TR>
    		</xsl:for-each>	
    									
    					
    		</TABLE>
    me li fa nelle colonne che dico io, ma su righe separate, perchè il ciclo inizia una nuova riga quando riparte.
    Ecco come si vede:



    Come risolvo? grazie anticipatamente

  2. #2
    Credo che il problema possa derivare da una scorretta gestione dll'XSL. Sposto nel forum giusto.
    FEDERIX.IT - [Pillola] GRAFICA DEI FORM

    ...ho ancora quella forza che ti serve, quando dici "Si comincia!"

  3. #3
    C'è una sezione del forum dedicata a questo... Dovresti trovarci più risposte. Magari fatti spostare da quelche mod.
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

  4. #4
    allora io ho risolto cambiando il dtd e di conseguenza tutto il resto, diciamo che l'ho fatto meno automatico :P

    adesso ho impostato dtd e xml in questo modo e funzia:

    codice:
    <!ELEMENT root (offerte+)>
    	<!ELEMENT offerte (it,eu,altr)>
    		<!ELEMENT it (name_it)>
    			<!ELEMENT name_it (#PCDATA)>
    				<!ATTLIST name_it link CDATA #REQUIRED>
    				<!ATTLIST name_it scad_gg CDATA #REQUIRED>
    				<!ATTLIST name_it scad_mm CDATA #REQUIRED>
    				<!ATTLIST name_it scad_aa CDATA #REQUIRED>
    
    		<!ELEMENT eu (name_eu)>
    			<!ELEMENT name_eu (#PCDATA)>
    				<!ATTLIST name_eu link CDATA #REQUIRED>
    				<!ATTLIST name_eu scad_gg CDATA #REQUIRED>
    				<!ATTLIST name_eu scad_mm CDATA #REQUIRED>
    				<!ATTLIST name_eu scad_aa CDATA #REQUIRED>
    
    		<!ELEMENT altr (name_altr)>
    			<!ELEMENT name_altr (#PCDATA)>
    				<!ATTLIST name_altr link CDATA #REQUIRED>
    				<!ATTLIST name_altr scad_gg CDATA #REQUIRED>
    				<!ATTLIST name_altr scad_mm CDATA #REQUIRED>
    				<!ATTLIST name_altr scad_aa CDATA #REQUIRED>
    e quindi l'xsl in questo modo:

    codice:
    <TABLE border="2" align="center" width="100%">
    			<TR>
    				<TH>ITALIA</TH>
    				<TH>EUROPA</TH>
    				<TH>ALTRO</TH>
    			</TR>
    			<xsl:for-each select="root/offerte">
    				<xsl:sort select="it/name_it" order="ascending" />
    				<xsl:sort select="eu/name_eu" order="ascending" />
    				<xsl:sort select="altr/name_altr" order="ascending" />
    						
    			<TR>
    				<TD><xsl:value-of select="it/name_it" /></TD>
    				<TD><xsl:value-of select="eu/name_eu" /></TD>
    				<TD><xsl:value-of select="altr/name_altr" /></TD>
    			</TR>
    			</xsl:for-each>	
    									
    					
    				</TABLE>
    mi scuso per aver sbagliato sezione

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.