XSLT

download XSLT

If you can't read please download the document

Transcript of XSLT

  • 1. XSL-TEidon School

2. Agenda Introduzione e richiami formali Pi in dettaglio Esempi Esercitazione laiuto del parser e browser PAUSA Esercitazione laiuto del parser e browser 3. Cos XSL-T Raccomandazione del W3C (la 1.0 novembre1999, 2.0 gennaio 2007) un linguaggio XML che Trasforma undocumento (XML) in input in un altrodocumento XML, o in testo, html, xhtml NS: http://www.w3.org/1999/XSL/Transform Contiene dei template che vengono applicatiattraverso dei matching (che identificano glielementi del documento di input) Il Data Model identio a quello di XPATH 4. Fonte: w3.org XSL 5. Il nostro file di esempioRoot Element / Root NodeDocument ElemProcess Instruc.Mercato di test CommentGiovedi 18 dicembre 2003 16.05.29000105Miami American CafeElement IT07654930130Viale Carlo Espinasse 5, Como13Attribute000302Filiberto GilardiIT87654770157Via Biancospini 20, Messina8Text Node 6. Un file XSL-T nudoecrudo.xslt 7. DEMOApplichiamo al nostro xmllxslt appena vistojava AccessXSLTC -IN Elenco.xml -XSL nudoecrudo.xslt 8. RisultatoMercato di testGiovedi 18 dicembre 200316.05.295Miami AmericanCafeIT07654930130Viale Carlo Espinasse 5,Como13si302FilibertoGilardiIT87654770157Via Biancospini 20,Messina81302EidonIT887511231Via Bassini17/2, Milano18 9. Lelaborazione di XSL-T1. Legge il foglio di stile XSL-T2. Legge il documento XML in input3. Costruisce in output un documento che si ottiene trasformando linput con le regole di template e pattern presenti nel foglio di stile4. Se il template non viene trovato, applica quello di default: in output tutto il testo contenuto nei tag 10. Il template Al macthing tra il nodo corrente e lattributomatch viene applicato il template possibile usare LocationXPath, Axis ePredicati 11. Il template di default 12. Un esempio semplice 13. XSL-T: xsl:value-of ... Potete immaginare gi a cosa serva... Recupera le informazioni puntate dalla stringa XPath. I tag che non appartengono al namespace xsl vengono riportati cosi come sono sul documento di output. 14. XSL-T: xsl:value-of 15. XSL-T: xsl:for-each Anche qui non difficile capire significato: per ogni tag record contenuto nel nodo corrente, applica la struttura al suo interno. Naturalmente, al posto di RECORD, poteva esserci una qualunque istruzione XPath! 16. XSLT: xsl:sortAllinterno di un ciclo xsl:for-each ordina lasequenza degli elementi, possibileutilizzarne anche pi di uno: 17. XSL-T: xsl:attribute>Img 18. XSL-T: xsl:if. 19. XSL-T: xsl:chooseDestinatario . Mittente 20. XSL-T: xsl:textPreserva il testo contenuto per riportarlo inoutput senza variazioni sugli spazi: 21. XSL-T: xsl:decimal-formatDeve essere figlio di xsl:stylesheet. Definiscequali sono i caratteri speciali utilizzati dallafunzione format-number: 22. XSL-T: format-number()Parametri: 1) Il valore/xpath da formattare 2) La stringa di formattazione (http://java.sun.com/j2se/1.5.0/docs/api/java/text/Dec) 3) Il nome del DecimalFormat (facoltativo) 23. XSL-T: altri elementi comuni xsl:copy xsl:variable xsl:comment xsl:preserve-space xsl:element xsl:apply-templates xsl:output xsl:number 24. XSL-T: funzioni current() document() format-number() function-available() element-available()+ naturalmente quelle di XPATH 25. ESERCITAZIONI 26. OrdinaleModificando il file Elenco.xslt, inserire una prima colonna con lordinale.Suggerimento:position() 27. Soluzione Num 28. E..Non voglio un numero arabo ma un numero romano.Suggerimento:xsl:number e position() 29. Soluzione 30. Stringhe Se la partita iva inizia con IT il testo della stessadeve essere in italico:Suggerimento: xsl:if e funzione xpath starts-with 31. Soluzione font-style:italic; 32. Ordinare i recordModificando il file Elenco.xslt, far rendeizzare i record ordinati per codice_client discendenteSuggerimento:xsl:sort 33. Soluzione 34. Avere un effetto di bgcolor simile a:Suggerimento: xsl:attribute, xsl:choose,position() e bgcolor(html) 35. SoluzioneSilverGray 36. Inserire il totale dei prodotti Suggerimento: xsl:value-of e sum() 37. Soluzione Totale prodotti e-of> 38. Aggiungere e formattare il numero deiprodottiSuggerimento: xsl:decimal-format e format-number() 39. Soluzione 40. Inserire uno spazio tra 007 e Mercato 41. Soluzionent>