Język XSLT. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz



Podobne dokumenty
Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

Języki formatowania dokumentów strukturalnych. XSL przekształcenia XML-a. XSL a XSLT. XSL części składowe. Zasada działania przekształcenia XSLT

Wprowadzenie do XSLT

Extensible Markup Language III

XML extensible Markup Language 3

XML materiały dydaktyczne - Kurs Podstawowy XSL - wprowadzenie. XSL warstwa przekształcania (XSLT) oraz prezentacji informacji (XSL FO).

Rodzaje przetwarzania XSLT (1)

Kurs WWW Język XML, część II

Plan prezentacji. Krótko o XML Arkusze stylów XSLT XSL XSL Path Przegląd konstrukcji języka i przykłady Narzędzia Podsumowanie Literatura

METAJĘZYKI. Politechnika Koszalińska Wydział Elektroniki i Informatyki Katedra Inżynierii Komputerowej

XML Path Language (XPath)

Przetwarzanie dokumentów XML za pomocą XSLT ( r.)

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Osie (axes) Location paths

LABORATORIUM 5 WSTĘP DO SIECI TELEINFORMATYCZNYCH WPROWADZENIE DO XML I XSLT

XSL, tj. XSLT i XSL-FO czyli jak przekształcać i ładnie wyświetlać XML-e. Kuba Pochrybniak

XML extensible Markup Language. część 8

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Przetwarzanie dokumentów XML za pomocą procesora XSLT (Zajęcia r.

Aplikacje internetowe laboratorium XML, DTD, XSL

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

Wprowadzenie do standardu XSL

XML extensible Markup Language. część 6

Prezentacja i transformacja

Służy do wybierania/wyszukiwania fragmentów dokumentu XML. Przypomina trochę ścieżki w systemie operacyjnym. Niech będzie dany dokument XML:

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Wykład 04

XSLT. Patryk Czarnik. Instytut Informatyki UW. XML i nowoczesne technologie zarzadzania treścia 2007/08

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

5.14 JSP - Przykład z obiektami sesji Podsumowanie Słownik Zadanie... 86

UKŁAD INFORMACJI I POWIĄZAŃ MIĘDZY NIMI W INFORMACJI W SPRAWIE PODATKU LEŚNEGO (IL-1) W FORMACIE DANYCH XML

XML extensible Markup Language. część 3

Prezentacja dokumentów XML

XSLT. Patryk Czarnik. XML i nowoczesne technologie zarzadzania treścia 2007/08

<meta:wartosc> </meta:identyfikator> <meta:rodzajrelacji>maczesc</meta:rodzajrelacji>

XML & XSLT. Programowanie w Javie 2

XSLT. Patryk Czarnik. XML i nowoczesne technologie zarzadzania treścia 2008/09. Instytut Informatyki UW. Patryk Czarnik 08 XSLT XML 2008/09 1 / 1

Egzamin z przedmiotu Projektowanie języków XML imię i nazwisko. Zadanie Suma Punkty Max Punkty

XSLT. Patryk Czarnik. XML i nowoczesne technologie zarządzania treścią 2008/09. Instytut Informatyki UW

Prezentacja dokumentów XML

XPath XML Path Language. XSL Extensible Stylesheet Language. Wyrażenia XPath. XPath data model. Location paths. Osie (axes)

Języki i Techniki Programowania II. Wykład 13. TRaX, Applety, Java Security

XML extensible Markup Language. część 4

METAJĘZYKI. Politechnika Koszalińska Wydział Elektroniki i Informatyki Katedra Inżynierii Komputerowej

λ parametry. wartość funkcji suma = λ x y. x + y kwadrat = λ x. x * x K.M. Ocetkiewicz, 2008 WETI, PG 2 K.M. Ocetkiewicz, 2008 WETI, PG 3

Technologie internetowe

Dlaczego Python jest lepszy od XSLT?

XSLT. Patryk Czarnik. XML i nowoczesne technologie zarządzania treścią 2011/12

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Location paths. Osie (axes)

Prezentacja i transformacja

SPECYFIKACJA FUNKCJONALNA OPROGRAMOWANIA 11 marca 2014 XLZEBRAPRINTER

XSLT. Patryk Czarnik. XML i nowoczesne technologie zarzadzania treścia 2011/12. Instytut Informatyki UW. Patryk Czarnik 08 XSLT XML 2011/12 1 / 54

UCHWAŁA NR II/17/2014 RADY GMINY PRZODKOWO. z dnia 30 grudnia 2014 r.

Rodzaje przetwarzania XSLT (1) XSLT część 2. Inne standardy związane z XML-em. Rodzaje przetwarzania XSLT (2) Zmienne. Zaawansowane możliwości XSLT

XML i nowoczesne technologie zarządzania treścią

Wprowadzenie do standardu XSL

Informacja podatku łączny styl

Przykładowy dokument XML

Przykładowy dokument XML

Literatura. Głównie informacje w sieci:

WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1

Rok akademicki: 2013/2014 Kod: ZZIP IN-s Punkty ECTS: 2. Kierunek: Zarządzanie i Inżynieria Produkcji Specjalność: Informatyka w zarządzaniu

XQuery. sobota, 17 grudnia 11

Załącznik nr 2 do uchwały Nr XXII/ 141 /2013 Rady Gminy Bojszowy z dnia r. <?xml version="1.0" encoding="utf-8"?>

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Złożone komponenty JSF wg

XML i jego zastosowania

Plan prezentacji XSLT. XSLT Ogólna charakterystyka. Drzewo XML. Wstęp. Przedmiot: XML i jego zastosowania. Zagadnienia podstawowe

Język XML Schema. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

D:\Program Files\Temp\Deklaracja o wysokości opłaty za gospodarowanie odpadami komunalnymi-3.xml 6 maja :16

Prezentacja dokumentów XML

Blockly Kodowanie pomoc.

Zasady Nazewnictwa. Dokumentów XML Strona 1 z 9

XML extensible Markup Language. Paweł Chodkiewicz

Dokumentacja Użytkownika Systemu

252 Bazy danych. Praca z językiem XML

System imed24 Instrukcja Moduł Analizy i raporty

Układ informacji i powiązań między danymi w deklaracji w formacie XML

Prezentacja dokumentów XML

Aplikacje internetowe. Interfejs użytkownika

XML i nowoczesne technologie zarządzania treścią

Instrukcja użytkownika Porównywarki cen Liquid

Kazienko P.: Rodzina języków XML. Software nr 6 (90) czerwiec 2002, s Rodzina języków XML. Przemysław Kazienko

XML i nowoczesne technologie zarządzania treścią 2007/08

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

29. Poprawność składniowa i strukturalna dokumentu XML

Wprowadzenie do technologii XML

UCHWAŁA NR L/932/13 RADY MIASTA MYSŁOWICE. z dnia 19 grudnia 2013 r.

Laboratorium 7 Blog: dodawanie i edycja wpisów

Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane

XML i nowoczesne metody zarządzania treścią

Plan dzisiejszego wykładu. Narzędzia informatyczne w językoznawstwie. XML - Definicja. Zalety XML

GML w praktyce geodezyjnej

Kurs języka Python Wykład 8. Przetwarzanie tekstu Wyrażenia regularne Biblioteka urllib Parsowanie html'a XML

Informatyka (10) dr inż. Katarzyna Palikowska Katedra Transportu Szynowego i Mostów p. 4 Hydro

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

Układ informacji i powiązań między danymi w deklaracji o wysokości opłaty za gospodarowanie odpadami komunalnymi

Model semistrukturalny

METODY REPREZENTACJI INFORMACJI

ROZPORZĄDZENIE MINISTRA SPRAW WEWNĘTRZNYCH I ADMINISTRACJI [1]) z dnia r.

Aplikacje WWW Wprowadzenie

XML extensible Markup Language 7

UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Transkrypt:

Język XSLT Po zrealizowaniu materiału student będzie w stanie Dokonać przekształcenia zawartości dokumentu XML do formatu HTML oraz TXT Realizować przetwarzanie warunkowe dokumentu XML Formatować wartości wynikowe Dokonywać selekcji oraz porządkowania rezultatów transformacji 2 1

W3C http://www.w3.org/standards/xml/transformation ZVON XSLT tutorial http://www.zvon.org/comp/r/tut-xslt_1.html# w języku polskim: http://zvon.org/xxl/xsltutorial/output_pol/contents.html W3Schools XSLT tutorial http://www.w3schools.com/xsl/default.asp AltovaXML procesor XML (walidacja oraz transformacja dokumentu XML) http://www.altova.com/download_components.html Dowolna przeglądarka internetowa 3 Struktura dokumentu XSLT Szablony oraz metody ich wywoływania Porządkowanie informacji wynikowych Transformacja warunkowa Modyfikacja dokumentu XML dodawanie i usuwanie informacji 4 2

XSLT extensible Stylesheet Language Transformation XSL = XSLT + XSL-FO+ XPATH przestrzeń nazw http://www.w3.org/1999/xsl/transform Zastosowanie przekształcanie dokumentu źródłowego XML wizualizacja danych 5 Dokument XML Dokument XSLT Procesor XSLT Dokument wynikowy XML, HTML, TXT 6 3

Dokument XSLT Format XML Zawiera zbiór reguł transformacji dokumentu XML Reguły transformacji wzorce (XPath) szablony (fragmenty dokumentu wynikowego) 7 <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:output method="html"... /> <xsl:template match=" "> <xsl:template match=" "> <xsl:template match=" "> Format dokumentu wynikowego Reguły (szablony) transformacji Wzorzec dopasowania 8 4

<apply-templates/> <apply-templates select= wzorzec /> Wyznaczenie zbioru węzłów Dopasowanie szablonu do każdego węzła ze zbioru 9 <?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/xsl" href="sklep.xsl"?> <sklep> <towar kod="2213" ilosc="150" jm="szt"> <nazwa>chleb razowy</nazwa> <cena waluta="pln">1.5</cena> </towar> <towar kod="2115" ilosc="21" jm="szt"> <nazwa>margaryna palma</nazwa> <cena waluta="pln">1.99</cena> </towar> <towar kod="2010" ilosc="92" jm="kg"> <nazwa>cukier</nazwa> <cena waluta="eur">0.7</cena> </towar> <towar kod="2520" ilosc="73" jm="szt"> <nazwa>margaryna</nazwa> <cena waluta="pln">2.45</cena> </towar> </sklep> Powiązanie z plikiem transformacji 10 5

Wywoływane, gdy w dokumencie transformacji nie został określony szablon jawny węzeł elementu, węzeł dokumentu <xsl:template match="* /"> <xsl:apply-templates /> <xsl:template match="@* text()"> <xsl:value-of select="." /> Przykład: Dokument transformacji XSLT <?xml version="1.0"?> <xsl:stylesheet version="1.0 xmlns:xsl=http://www.w3.org/1999/xsl/transform> Efekt końcowy w przeglądarce węzeł atrybutu, węzeł tekstowy pobranie zawartości chleb razowy 1.5 margaryna palma 1.99 cukier 0.7 margaryna 2.45 11 Dokument transformacji XSLT chleb razowy<br/> margaryna palma<br/> cukier<br/> margaryna<br/> Efekt końcowy w przeglądarce chleb razowy margaryna palma cukier margaryna 12 6

Dokument transformacji XSLT KaŜda transformacja rozpoczyna się zawsze od wykonania zawartości szablonu dla węzła głównego (/). Czy istnieje szablon pasujący do węzła głównego? Tak. Zatem jego zawartość zostanie wykonana. 13 Dokument transformacji XSLT Elementy szablonu, które nie naleŝą do przestrzeni nazw schematu (nie posiadają prefiksu xsl) zostają skierowane do dokumentu wynikowego w postaci niezmienionej.... 14 7

Dokument transformacji XSLT Natomiast elementy szablonu, które naleŝą do przestrzeni nazw schematu (posiadają prefiks xsl) stanowią instrukcje transformacji i są wykonywane przez procesor.... 15 Dokument transformacji XSLT Instrukcja apply-templates: 1. Wyznacza wszystkie węzły dzieci (child) dla węzła kontekstowego (w tym wypadku węzłem kontekstowym jest /, a węzły dzieci to sklep) 2. Dla kaŝdego wyznaczonego węzła odszukuje i wykonuje szablon.... 16 8

Dokument transformacji XSLT Czy istnieje szablon pasujący do węzła sklep? Nie. Zatem zostanie wykonany szablon domyślny. <xsl:template match="* /"> <xsl:apply-templates />... 17 Dokument transformacji XSLT Zawartością szablonu domyślnego jest instrukcja apply-templates, która wyznaczy węzły dzieci dla węzła kontekstowego (sklep) i dopasuje dla nich szablony. /> <xsl:template match="* /"> <xsl:apply-templates />... 18 9

Dokument transformacji XSLT Dla węzła sklep istnieją 4 węzły dzieci o nazwach towar. Czy istnieje szablon pasujący do węzła towar? Tak. Zatem jego zawartość zostanie wykonana (czterokrotnie, dla kaŝdego węzła towar)... 19 Dokument transformacji XSLT Wykonanie szablonu dla pierwszego węzła towar spowoduje wykonanie instrukcji apply-templates zawartej w tym szablonie. Instrukcja ta nie wskazuje na wszystkie dzieci węzła kontekstowego (towar), ale na węzły dzieci o konkretnej nazwie (nazwa). Tylko dla takich węzłów zostanie dopasowany szablon.... 20 10

Dokument transformacji XSLT Szablon zawiera instrukcję value-of zwracającą wartość węzła. Wartość ta jest skierowana do pliku wynikowego. Zwróć uwagę na element <br/>. PoniewaŜ nie posiada on prefiksu xsl, zostanie on równieŝ skierowany do dokumentu wynikowego. chleb razowy<br/> 21 Dokument transformacji XSLT Wykonanie szablonu dla pozostałych trzech węzłów towar przebiega identycznie, jak zostało to opisane. Rezultatem są kolejne trzy linie w pliku wynikowym. chleb razowy<br/> cukier<br/> margaryna<br/> margaryna palma<br/> 22 11

Dokument transformacji XSLT <xsl:apply-templates select="//nazwa"> </xsl:apply-templates> chleb razowy<br/> cukier<br/> margaryna<br/> margaryna palma<br/> Efekt końcowy w przeglądarce chleb razowy cukier margaryna margaryna palma 23 Dokument transformacji XSLT <xsl:apply-templates select="//nazwa"> <xsl:sort order="ascending" data-type="text"/> </xsl:apply-templates> chleb razowy<br/> cukier<br/> margaryna<br/> margaryna palma<br/> Efekt końcowy w przeglądarce chleb razowy cukier margaryna margaryna palma 24 12

Dokument transformacji XSLT <xsl:apply-templates select="//nazwa"/> <xsl:number count="towar" format="1. "/> 1. chleb razowy<br/> 2. margaryna palma<br/> 3. cukier<br/> 4. margaryna<br/> Efekt końcowy w przeglądarce 1. chleb razowy 2. margaryna palma 3. cukier 4. margaryna 25 Dokument transformacji XSLT <xsl:apply-templates select="//nazwa"/> <xsl:if test="../cena/@waluta!='eur'"> </xsl:if> chleb razowy<br/> margaryna palma<br/> margaryna<br/> Efekt końcowy w przeglądarce chleb razowy margaryna palma margaryna 26 13

Dokument transformacji XSLT <xsl:apply-templates select="//nazwa"/> <xsl:choose> <xsl:when test="../cena/@waluta='eur'"> <b><xsl:value-of select="."/></b> </xsl:when> <xsl:otherwise> <xsl:value-of select="."/> </xsl:otherwise> </xsl:choose> <br/> chleb razowy<br/> margaryna palma<br/> <b>cukier</b><br/> margaryna<br/> Efekt końcowy w przeglądarce chleb razowy margaryna palma cukier margaryna 27 Dokument transformacji XSLT <xsl:apply-templates select="//nazwa"/> <xsl:value-of select="."/> <xsl:call-template name="konieclinii"/> <xsl:template name="konieclinii"> <br/> chleb razowy<br/> margaryna palma<br/> cukier<br/> margaryna<br/> Efekt końcowy w przeglądarce chleb razowy margaryna palma cukier margaryna 28 14

Dokument transformacji XSLT <xsl:for-each select="//nazwa"> <xsl:value-of select="."/> <br/> </xsl:for-each> chleb razowy<br/> margaryna palma<br/> cukier<br/> margaryna<br/> Efekt końcowy w przeglądarce chleb razowy cukier margaryna margaryna palma 29 Przypisanie nazwy dla wzorca dopasowania <xsl:variable name="nazwatowaru" select="//nazwa"/> <xsl:apply-templates select="$nazwatowaru"> </xsl:apply-templates> 30 15

Dokument transformacji XSLT <xsl:variable name="liczbatowarow"> <xsl:value-of select="count(//towar)"/> </xsl:variable> <xsl:apply-templates select="//nazwa"> <xsl:sort order="ascending" data-type="text"/> </xsl:apply-templates> <xsl:value-of select="position()"/> <xsl:text>/</xsl:text> <xsl:value-of select="$liczbatowarow"/> <xsl:text> </xsl:text> 1/4 cukier<br/> 2/4 chleb razowy<br/> 3/4 margaryna<br/> 4/4 margaryna palma<br/> Efekt końcowy w przeglądarce 1/4 cukier 2/4 chleb razowy 3/4 margaryna 4/4 margaryna palma Źródło: opracowanie na podstawie http://zvon.org/xxl/xsltutorial/output_pol/ example33_ch9.html 31 Wywołanie szablonu dla zmiennych wartości <xsl:apply-templates select="//nazwa"> <xsl:with-param name="waluta" select=" pln'"/> </xsl:apply-templates> wywołanie szablonu z parametrem WALUTA = pln definicja parametru wartość domyślna: eur <xsl:param name="waluta" select="'eur'"/> <xsl:value-of select="text()[../../cena/@waluta=$waluta]"/><br/> chleb razowy margaryna margaryna palma 32 16

Wywołanie szablonu z wartością domyślną parametru <xsl:apply-templates select="//nazwa"> </xsl:apply-templates> <xsl:param name="waluta" select="'eur'"/> <xsl:value-of select="text()[../../cena/@waluta=$waluta]"/><br/> cukier 33 Określanie separatora dziesiętnego <xsl:decimal-format/> Określanie liczby miejsc dziesiętnych format-number() Przykład: <xsl:decimal-format decimal-separator="," /> <xsl:value-of select="format-number(., '#.00')"/> <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:decimal-format name="pln" decimal-separator="." grouping-separator=","/> <xsl:value-of select="format-number(26825.8, '#,###.00 zł', 'pln')"/> Oprac. na podstawie: http://www.w3schools.com/xsl/el_decimal-format.asp 26,825.80 zł 34 17

Tworzenie struktury <xsl:element> <xsl:attribute> <xsl:comment> <xsl:processing-instruction> <xsl:attribute-set> Kopiowanie struktury <xsl:copy> <xsl:copy-of> Usuwanie elementów i/lub atrybutów Zastosowanie szablonu pustego 35 Kopiowanie struktury dokumentu z wykorzystaniem elementu COPY-OF <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:output method="xml" indent="yes" /> <xsl:copy-of select="*" /> 36 18

Kopiowanie struktury dokumentu z wykorzystaniem elementu COPY <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:output method="xml" indent="yes" /> <xsl:template match="@* node()"> <xsl:copy> <xsl:apply-templates select="@* node()"/> </xsl:copy> 37 <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:output method="xml" indent="yes" /> <xsl:template match="@* node()"> <xsl:copy> <xsl:apply-templates select="@* node()"/> </xsl:copy> Uzupełnianie struktury dokumentu XML o nowe informacje <xsl:copy> <xsl:copy-of select="@*"/> <xsl:attribute name="gatunek">1</xsl:attribute> <xsl:element name="producent">polmark SA</xsl:element> </xsl:copy> 38 19

<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:output method="xml" indent="yes" /> <xsl:template match="@* node()"> <xsl:copy> <xsl:apply-templates select="@* node()"/> </xsl:copy> Usunięcie informacji dotyczącej ceny z dokumentu XML <xsl:template match="cena"/> 39 20