Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
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 |
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.