Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Usare il metodo abbreviato per creare gli attributi

Velocizziamo la creazione degli attributi con un metodo più veloce
Velocizziamo la creazione degli attributi con un metodo più veloce
Link copiato negli appunti

Esiste un metodo più rapido per creare attributi senza
utilizzare l'elemento <xsl:attribute>. Nell'esempio 15 abbiamo utilizzato
questo codice XSLT

   
<img>
    
<xsl:attribute name="src">
    
<xsl:text>img/</xsl:text>
     
<xsl:value-of select="img"/>
    
</xsl:attribute>
   
</img> 

per avere come risultato nell'output il seguente codice: <img src="img/immagine.gif">.

Sicuramente non è molto conveniente scrivere più righe
di codice per ottenere una sola riga di codice in output! Esiste un modo molto più veloce ed efficace che renderà quindi anche più leggibile il codice XSLT. Vediamo come possiamo riscrivere il codice XSLT preso in esame utilizzando il
metodo abbreviato:

    
<img src="{img}">
      
<xsl:value-of select="img"/>
    
</img>

Questo metodo è sicuramente molto più veloce ed
efficace e ci permette di creare molti attributi semplicemente inserendo tra { e
} il nome dell'elemento dell'XML che contiene il valore che ci interessa.

Vediamo subito un esempio molto interessante che ci
permetterà di creare un form di ricerca utilizzando un XML e un XSLT.

Esempio 16.

Documento XML ( esempio16.xml ):

<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="E:GuidaXSLTESEMPIesempio16.xslt"?>
   <form url="prova.asp" metodo="POST">
       <datiform>
     
<campi>
      
<intestazione>NOME</intestazione>
      
<elenco>
     
<campo>
    
<nomecampo>nome</nomecampo>
    
<valorecampo>Enrico</valorecampo>
    
<tipocampo>text</tipocampo>
    
<sizecampo>20</sizecampo>
    
<maxlength/>
     
</campo>
      
</elenco>
     
</campi>
     
<campi>
      
<intestazione>COGNOME</intestazione>
      
<elenco>
     
<campo>
    
<nomecampo>cognome</nomecampo>
    
<valorecampo>Lai</valorecampo>
    
<tipocampo>text</tipocampo>
    
<sizecampo>20</sizecampo>
    
<maxlength/>
     
</campo>
      
</elenco>
     
</campi>
     
<campi>
      
<intestazione>DATA DI NASCITA</intestazione>
      
<elenco>
     
<campo>    
    
<nomecampo>giorno</nomecampo>
    
<valorecampo>06</valorecampo>
    
<tipocampo>text</tipocampo>
    
<sizecampo>2</sizecampo>
    
<maxlength>2</maxlength>
     
</campo>
     
<campo>
    
<nomecampo>mese</nomecampo>
    
<valorecampo>09</valorecampo>
    
<tipocampo>text</tipocampo>
    
<sizecampo>2</sizecampo>
    
<maxlength>2</maxlength>
     
</campo>
     
<campo>
    
<nomecampo>anno</nomecampo>
    
<valorecampo>1976</valorecampo>
    
<tipocampo>text</tipocampo>
    
<sizecampo>4</sizecampo>
    
<maxlength>4</maxlength>
     
</campo>
      
</elenco>
     
</campi>
     
<campi>
      
<intestazione>INDIRIZZO E-MAIL</intestazione>
      
<elenco>
     
<campo>
    
<nomecampo>email</nomecampo>
    
<valorecampo>e.lai@html.it</valorecampo>
    
<tipocampo>text</tipocampo>
    
<sizecampo>20</sizecampo>
    
<maxlength/>
     
</campo>
      
</elenco>
     
</campi>
     
<campi>
      
<intestazione/>
      
<elenco>
     
<campo>
    
<nomecampo/>
    
<valorecampo>Invia</valorecampo>
    
<tipocampo>submit</tipocampo>
    
<sizecampo/>
    
<maxlength/>
     
</campo>
      
</elenco>
     
</campi>
       </datiform>
    </form>

Codice XSLT utilizzato ( esempio16.xslt ):

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="/">
    <html>
   <table>
       <form action="{form/@url}" method="{form/@metodo}">
     
<xsl:for-each select="form/datiform/campi">
     
<tr>
      
<td>
     
<xsl:value-of select="intestazione"/>
      
</td>
      
<td>
     
<xsl:for-each select="elenco/campo">
      <input type="{tipocampo}" value="{valorecampo}" name="{nomecampo}" size="{sizecampo}" maxlength="{maxlength}"/>
    
<xsl:text> </xsl:text>
     
</xsl:for-each>
      
</td>
     
</tr>
     
</xsl:for-each>
       </form>
   </table>
    </html>
</xsl:template>
</xsl:stylesheet>

Risultato in Output della trasformazione 
(esempio 16).

<html>
<table>
<form action="prova.asp" method="POST">
<tr>
<td>NOME</td>
<td><input type="text" value="Enrico" name="nome" size="20" maxlength=""> </td>
</tr>
<tr>
<td>COGNOME</td>
<td><input type="text" value="Lai" name="cognome" size="20" maxlength=""> </td>
</tr>
<tr>
<td>DATA DI NASCITA</td>
<td><input type="text" value="06" name="giorno" size="2" maxlength="2"> <input type="text" value="09" name="mese" size="2" maxlength="2"> <input type="text" value="1976" name="anno" size="4" maxlength="4"> </td>
</tr>
<tr>
<td>INDIRIZZO E-MAIL</td>
<td><input type="text" value="e.lai@html.it" name="email" size="20" maxlength=""> </td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Invia" name="" size="" maxlength=""> </td>
</tr>
</form>
</table>
</html>

 

Clicca
qui per vedere il risultato della trasformazione sul browser.


Clicca qui per vedere l'XSLT sul browser.

Ti consigliamo anche