Inserire elementi nell'output con XSLT
Per mostrare quanto è semplice questa operazione, apriamo nel browser il file di esempio auto.xml. A questo file vogliamo dare una formattazione diversa; un output inserito in una tabella. Adesso vediamo il foglio di stile XSLT completo, prima di associarlo al sorgente XML.
Il modello "automobili" crea il tag di inizio della tabella. Subito dopo viene utilizzato l´elemento xsl:apply-templates per richiamare altri modelli. Per ogni elemento "auto" viene creata una riga di tabella (il tag tr). Per ogni attributo viene creata una cella della tabella dal seguente codice:
che inserisce anche il valore di ogni attributo. Il file finale di esempio trasformato che otteniamo, ci dà quello che abbiamo scritto nel file XSLT.
Ottenere un diverso output con XSLT
Il file sorgente XML che abbiamo visualizzato prima (lo stesso che abbiamo usato come base per stamparlo a video in una tabella), ci serve come partenza per ottenere una diversa struttura quando lo stesso è aperto nel browser. Tutti i valori dell´elemento "auto" sono contenuti in attributi. XSLT ci offre un´altra oportunità: trasformarlo in maniera tale che tutti gli elementi vengano rappresentati come un singolo nodo. Per intenderci meglio, otterremo una struttura del genere:
<auto>
......
</auto>
</automobili>
ovviamente questo codice è solo parziale ma, credo, aiuta a rendere meglio l´idea. Una struttura del genere la possiamo avere grazie al foglio di stile opportunamente formattato. Possiamo vedere il file con il codice completo prima associarlo al sorgente XML. Il risultato di questa trasformazione è pronto per essere visualizzato nel file di esempio. È come se fossimo "ritornati" al punto di partenza. Avrete sicuramente notato che per avere un output del genere, sono stati usati caratteri speciali. XML ne ha 5 di default: & - < - > - " ´. Grazie a due di questi caratteri speciali (definite entità), vale a dire la parentesi angolare aperta e chiusa, abbiamo rigenerato il sorgente XML con la struttura a nodi.
| < Prec. | Succ. > |
|---|

