La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

I fogli di stile XSL.

Presentazioni simili


Presentazione sul tema: "I fogli di stile XSL."— Transcript della presentazione:

1 I fogli di stile XSL

2 Allegare un foglio di stile a un documento XML
XSL <?xml-stylesheet type=”text/xsl” href=”mioxsl.xsl”?> CSS <?xml-stylesheet type=”text/css” href=”miocss.css”?>

3 Esempio <?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="prova.xsl"?> <!DOCTYPE TEI.2 PUBLIC "-//TEI//DTD TEI Lite XML ver. 1//EN" "c:/TEI-EMACS/xml/dtds/tei/teixlite.dtd" []>

4 XSL: due linguaggi in uno
XSLT un potente linguaggio di trasformazione (html, xml, txt) XSL:FO formattazione di oggetti

5 XSLT: uso Serve a: Cosa fa:
visualizzare un documento XML come se fosse un documento HTML, XML, TXT trasformare un documento XML in un documento XML, HTML, TXT Cosa fa: Trasforma un NODO XML di input in un NODO (XML | HTML | TXT) di output

6 TIPI DI NODI Document root (Radice del documento)
Attribute (Attributo) Comment (Commento) Element (Elemento) Namespace Processing instruction (Istruzione di elaborazione) Text (Testo)

7 Elemento ROOT di un XSL <?xml version=”1.0”?>
<xsl:stylesheet version="1.0" xmlns:xsl=" <!-- qui il contenuto del foglio di stile --> </xsl:stylesheet>

8 Template Per selezionare i nodi XSL usa dei template
Un template è costituito da una serie di regole che contengono delle istruzioni. Quando si compara o si seleziona un nodo, un template dice al processore XSLT quale insieme di regole usare per trasformare il nodo per l’output.

9 xsl:template <xsl:template match=“qui il nodo”>
<!--Qui le regole per il nodo selezionato --> </xsl:template>

10 Un foglio XSL <?xml version=”1.0”?>
<xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:template match=“qui un nodo”> </xsl:template> <!-- qui altri nodi --> </xsl:stylesheet>

11 Un esempio <?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="antologia.xsl"?> <antologia> <poesia><titolo>I</titolo> <stanza> <verso>Voi ch'ascoltate in rime sparse il suono</verso> <verso>di quei sospiri ond'io nudriva 'l core</verso> <verso>in sul mio primo giovenile errore</verso> <verso>quand'era in parte altr'uom da quel ch'i' sono,</verso> </stanza> <!-- altre stanze --> </poesia> </antologia>

12 Un esempio: il foglio di stile
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl=" version="1.0"> <xsl:output method="html" indent="yes" /> <xsl:template match="/"> <html> <body> <xsl:apply-templates /> </body> </html> </xsl:template> </xsl:stylesheet>  antologia1.xml

13 <xsl:output method="html" indent="yes" />
Ciò che vogliamo ottenere in output Attributi method=“html” | “xml” | “txt” indent=“yes” | “no”

14 La regola per l’elemento root
<xsl:template match="/"> <html> <body> <xsl:apply-templates /> </body> </html> </xsl:template>

15 Il processore XSLT <xsl:template match="/"> <html>
<body> <xsl:apply-templates /> </body> </html> </xsl:template> Trova l’elemento root (<xsl:template match="/">) Scrive due start-tag (<html> e <body>) Mette tutto il contenuto dell’elemento dell’elemento root (<xsl:apply-templates />) Scrive due end-tag (</body> e </html>)

16 Attenzione! Tutto ciò che è scritto dentro <xsl:template> viene scritto nell’output (testo, tag HTML…) Tutti gli elementi che appartengono al namespace xsl: vengono eseguiti.

17 xsl:apply-templates Serve per applicare le regole descritte al nodo selezionato e a tutti i suoi figli. Se si vuole che i figli abbiano una visualizzazione diversa, bisogna dichiarare una nuova regola

18 Es. 2 <?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl=" version="1.0"> <xsl:output method="html" indent="yes" /> <xsl:template match="/"> <html> <body> <xsl:apply-templates /> </body> </html> </xsl:template> <xsl:template match="titolo"> <p><center><xsl:apply-templates /></center></p> <xsl:template match="verso"> <xsl:apply-templates /><br/> </xsl:stylesheet>  antologia2.xml

19 Applicare una regola selezionando
<?xml version="1.0" encoding="iso "?> <?xml-stylesheet type="text/xsl" href="antologia.xsl"?> <antologia> <poesia><titolo>I</titolo> <stanza> <verso rima="A">Voi ch'ascoltate in rime sparse il suono</verso> <verso rima="B">di quei sospiri ond'io nudriva 'l core</verso> <verso rima="B">in sul mio primo giovenile errore</verso> <verso rima="A">quand'era in parte altr'uom da quel ch'i' sono,</verso> </stanza> <!-- altre stanze --> </poesia> </antologia>

20 select Attributo select Selezionare un attributo select=“@rima”
@nomeAttributo

21 Il foglio di stile <?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl=" version="1.0"> <xsl:output method="html" indent="yes" /> <xsl:template match="/"> <html> <body> <xsl:apply-templates /> </body> </html> </xsl:template> <xsl:template match="titolo"> <p><center><xsl:apply-templates /></center></p> <xsl:template match="verso"> (<b><xsl:apply-templates <xsl:text> </xsl:text> <xsl:apply-templates /><br/> </xsl:stylesheet>  antologia3.xml

22 Spazio fra le stanze <?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl=" version="1.0"> <xsl:output method="html" indent="yes" /> <xsl:template match="/"> <html> <body> <xsl:apply-templates /> </body> </html> </xsl:template> <xsl:template match="titolo"> <p><center><xsl:apply-templates /></center></p> <xsl:template match=“stanza"> <xsl:apply-templates /><br/> <xsl:template match="verso"> </xsl:stylesheet>  antologia4.xml

23 Selezionare nodi per l’attributo match di <xsl:template>
Nodo radice <xsl:template match="/"> ... </xsl:template> Elementi <xsl:template match=“verso">

24 Selezionare nodi per l’attributo match di <xsl:template> -2-
Figli nipoti o discendenti 1. <xsl:template match=“strofa/verso"> ... </xsl:template>  operatore / 2. <xsl:template match=“poesia/*/verso"> </xsl:template>  operatore * (salta un elemento) 3. <xsl:template match=“poesia//verso"> </xsl:template>  // salta n elementi

25 Selezionare nodi per l’attributo match di <xsl:template> -3-
Attributi 1. <xsl:template ... </xsl:template>  tutti i “verso” con attributo “rima” 2. <xsl:template </xsl:template> tutti i “verso” con attributo “rima” e valore “A”

26 Selezionare nodi per l’attributo match di <xsl:template> -4-
OR <xsl:template match="strofa | verso"> ... </xsl:template>  operatore |


Scaricare ppt "I fogli di stile XSL."

Presentazioni simili


Annunci Google