Home >> Blog

XML e XSL

eXtensible Markup Language + eXtensible Stylesheet Language

Ovvero come dare uno stile proprio che si visualizzerà nel browser ad un XML.

Prima di tutto cos'è un XML?
E' un metalinguaggio in cui è possibile definire tag in base alle proprie esigenze.
Nato nel contesto web può essere utilizzato per la definizione di strutture di documenti o per lo scambio di informazioni tra sistemi.

Nel web viene utilizzato maggiormente per implementazioni di feed RSS o per definire una sitemap da sottomettere ai vari motori di ricerca (google, ecc...).

Una struttura molto semplice di XML a cui è agganciato un foglio di stile XSL è la seguente:
La seconda riga è quella che si occupa di richiamare il foglio di stile test.xsl.

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<root>
   <persona>
     <nome>Stefano</nome>
     <cognome>Piacenti</cognome>
     <numero>11</numero>
   </persona>
   <persona>
     <nome>Mario</nome>
     <cognome>Rossi</cognome>
     <numero>1</numero>
   </persona>
</root>


Ovvero: nome, cognome e numero sono figli di persona che è figlio di root.

Passiamo al foglio di stile abbinato:
Il codice sotto riportato si occupa di definire il metodo di output (riga 2), in questo caso l'html, e di stilare i valori compresi tra i vari tag. La parte più importante è il for-each dal tag persona (riga 9 -> 16). Ovvero verrà eseguito tante volte quanti siano i tag persona. In questo caso verranno create 2 righe con 3 colonne in cui saranno inseriti i valori dei campi nome, cognome e numero. Se fossero stati presenti 5 persone, con ognuna i rispettivi tag nome, cognome e numero, saranno state visualizzate 5 righe.

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="UTF-8"/>
<xsl:template match="/">
<html>
<head><title>Persone</title>
</head>
<body>
   <table border="1">
   <xsl:for-each select="root/persona">
   <tr>
   <td><xsl:value-of select="nome" /></td>
   <td><xsl:value-of select="cognome" /></td>
   <td><xsl:value-of select="numero" /></td>
   </tr>
   </xsl:for-each>
   </table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>


Scaricate da qui lo zip con i file XML e XSL portati come esempio.
Clicca qui per visualizzare nel tuo browser l'XML descritto.

Contattatemi pure se avete bisogno di altre info o se non sono stato abbastanza chiaro.
 


La sua esperienza

Volevo segnalare un post scritto da un mio amico.

Ecco i link:
versione italiana - versione inglese

Cito una frase che è significativa ed esplicativa sulle possibilità lavorative se si guarda all'estero:

"Quante possibilità ci sono che una persona a caso, che ha messo per caso il suo CV su monster.com, possa ricevere in un tempo molto limitato (2/3 settimane) due proposte di lavoro per una stessa casuale azienda in due sedi europee casuali?A quanto pare molte."

Io aggiungo:

"In italia invece?"

Se avete 5 minuti leggetelo.


Buon Natale

Buon Natale
Buon Natale