Esercitazione 6
|
XML e Trasformazioni XSLT
Esercizio 1: trasformazione di un file XML statico
Considerate il seguente file XML
che descrive un catalogo di libri (togliete l'estensione .txt).
Per ogni libro sono descritti: il titolo, gli autori, la casa editrice,
la data dell'ultima ristampa, il codice ISBN, una foto della copertina,
e il prezzo.
|
|
- Usate Mozilla per la trasformazione lato client e
create un file di stile XSLT per trasformare il file XML in un corrispondente
file (X)HTML simile a quello in figura.
Partite da questo
file CSS, da questo
file XSLT e salvate in locale le immagini.
- Riprendete il programma
PHP che permette la trasformazione lato server e applicatelo ai file XML e XSLT
appena creati.
- Sempre partendo dai file precedenti, create una trasformazione "più
sofisticata", simile a quella nella figura seguente (le immagini questa volta sono
nella loro versione ingrandita).
- Usate Netscape 4.7 e Mozilla ed applicate una trasformazione personalizzata
a seconda del tipo di client da cui arriva la richiesta.
Nota: nel programma PHP dovete prima catturare il tipo di client andando a
leggere per esempio la variabile $HTTP_USER_AGENT che viene inizializzata al momento
della richiesta HTTP. Una tabella di possibili valori di $HTTP_USER_AGENT
è la seguente.
Browser |
$HTTP_USER_AGENT |
Explor 5.5 |
Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; T312461) |
Netscape 7.1 |
Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax) |
Opera |
Opera/7.23 (Windows NT 5.0; U) [en] |
Esercizio 2: trasformazione di un file XML dinamico
- Considerate una tabella del vostro database MySQL e generate un vostro file
XML "on the fly", estraendo i dati mediante una interrogazione.
- Create un foglio di stile XSLT opportuno per il file XML appena creato.
- Applicate la trasformazione lato server.
Partite dai seguenti file,
modificandoli opportunamente (occhio ai commenti all'interno dei file)
| file per la creazione del
documento XML dinamico |
funzione per la trasformazione |
|
|
|