Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    514

    Xsl applicare template match

    Ciao

    Allora ho una serie di link da formattare all'interno di un nodo.

    <nodo>
    <Link Indirizzo=""></Link>
    <Link Indirizzo=""></Link>
    </nodo>

    Ho già un template per trasformarli

    <template match="Link">
    <a href="@Indirizzo">
    <xsl:apply-templates />
    </a>
    </template>

    E fin quà tutto ok

    Però delle volte su alcuni nodi con dei link devo aggiungere per ogni link l'elemento[*]

    allora riprendendo l'esempio di sopra ho aggiunto

    <xsl:template match="nodo">
    <ul>

    <xsl:for-each select="*">[*]
    <xsl:apply-templates/>

    </xsl:for-each>
    [/list]
    </xsl:template>

    Cosi ogni volta che trova un <nodo> aggiunge un elenco ed applica ai suoi figli l'attributo[*] , funziona però non mi formatta + il link, si vede il testo del link ma manca la trasformazione del <LINK>

    Avete capito ? .....come posso fare ?
    Altre opzioni da provare qui --- select=" :master: " ---

    Io ho provato * . child::node .........nisba

  2. #2
    sbagli tutto.

    non devi chiamare apply-templates dentro il template LINK.
    ma devi fare cosi':

    codice:
    <xsl:template match="nodo">
    <ul>
    <xsl:for-each select="*">[*]
    <xsl:apply-templates/>
    
    </xsl:for-each>[/list]
    </xsl:template>
    
    <template match="Link">
    <xsl:value-of select="@indirizzo" />
    </template>

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    514
    Il mio problema era questo!

    Avendo svariati gruppi di link.

    codice:
    <root>
    
    <nodo_a> 
    <Link Indirizzo=""></Link> 
    <Link Indirizzo=""></Link> 
    </nodo_a>
    
    <nodo_b> 
    <Link Indirizzo=""></Link> 
    <Link Indirizzo=""></Link> 
    </nodo_b>
    
    </root>
    Vorrei applicare ad alcuni <link> un elenco mentre in altri no!

    Dovrebbe uscire cosi.

    codice:
    <div>
    <a></a>
    <a></a>
    </div>
    
    <div>
    <ul>[*]<a></a>[*]<a></a>[/list]
    </div>
    Comunque avevo risolto, solo che l'hò cancellato perchè ho cambiato sistema, dovrebbe essere all'incirca cosi.

    Tengo il template dei link e gli davo un nome Indirizzi .

    codice:
    <template match="Link" name="Indirizzi"> 
    <a href="@Indirizzo"> 
    <xsl:apply-templates /> 
    </a> 
    </template>
    E poi facevo cosi:

    codice:
    <xsl:template match="nodo_b">
    <div>
    <ul>
    <xsl:for-each select="*">[*]
    <xsl:call-template name="Indirizzi"  />
    
    </xsl:for-each>[/list]
    </div>
    </xsl:template>
    Spero sia giusto, non ricordo bene, era un pò + complicato per recuperare gli elenchi con altre funzioni !

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.