1 / 26

I fogli di stile

I fogli di stile. XSL. 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”?>. Esempio. <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="prova.xsl"?>

javier
Download Presentation

I fogli di stile

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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: • 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="http://www.w3.org/1999/XSL/Transform"?> <!-- 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="http://www.w3.org/1999/XSL/Transform"?> <xsl:template match=“qui un nodo”> </xsl:template> <xsl:template match=“qui un nodo”> </xsl:template> <xsl:template match=“qui un nodo”> </xsl:template> <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="http://www.w3.org/1999/XSL/Transform" 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. <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>) Il processore XSLT

  16. Attenzione! Tutto ciò che è scritto dentro <xsl:template> viene scrittonell’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="http://www.w3.org/1999/XSL/Transform" 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> <xsl:template match="verso"> <xsl:apply-templates /><br/> </xsl:template> </xsl:stylesheet>  antologia2.xml

  19. Applicare una regola selezionando <?xml version="1.0" encoding="iso-8859-1"?> <?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 • @nomeAttributo select=“@rima”

  21. Il foglio di stile <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 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> <xsl:template match="verso"> (<b><xsl:apply-templates select="@rima"/></b>) <xsl:text> </xsl:text> <xsl:apply-templates /><br/> </xsl:template> </xsl:stylesheet>  antologia3.xml

  22. Spazio fra le stanze <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 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> <xsl:template match=“stanza"> <xsl:apply-templates /><br/> </xsl:template> <xsl:template match="verso"> <xsl:apply-templates /><br/> </xsl:template> </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"> ... </xsl:template>

  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 match=“verso[@rima]"> ... </xsl:template>  tutti i “verso” con attributo “rima” 2. <xsl:template match=“verso[@rima=‘A’]"> ... </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 |

More Related