XML extensible Markup Language. część 8

Podobne dokumenty
XML extensible Markup Language. część 4

XML extensible Markup Language. część 6

XML extensible Markup Language. część 3

XML extensible Markup Language 3

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

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

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

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

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

Extensible Markup Language III

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

Wprowadzenie do XSLT

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

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

Rodzaje przetwarzania XSLT (1)

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

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

XML Path Language (XPath)

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

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

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

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

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

Aplikacje internetowe laboratorium XML, DTD, XSL

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

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

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

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

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

λ 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

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

Prezentacja i transformacja

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

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

XML & XSLT. Programowanie w Javie 2

Wprowadzenie do standardu XSL

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

Informacja podatku łączny styl

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

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

<body> <div style="max-width: 900px; margin: 0 auto;">

Dlaczego Python jest lepszy od XSLT?

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

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

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

Aplikacje internetowe. Interfejs użytkownika

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

Prezentacja i transformacja

Literatura. Głównie informacje w sieci:

XML i nowoczesne technologie zarządzania treścią

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

UCHWAŁA NR 135/XXVII/13 RADY MIASTA ZAMBRÓW. z dnia 26 marca 2013 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

UCHWAŁA Nr LII/468/2018 RADY MIEJSKIEJ W KARCZEWIE z dnia 27 lutego 2018 r.

Prezentacja dokumentów XML

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

XML i nowoczesne metody zarządzania treścią

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

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

Technologie internetowe

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

UCHWAŁA NR VII/49/2015 RADY MIASTA PRUSZCZ GDAŃSKI. z dnia 12 maja 2015 r.

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŚLĄSKIEGO

Przykładowy dokument XML

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

UCHWAŁA NR XLIII/569/14 RADY MIEJSKIEJ W CZERWIONCE-LESZCZYNACH. z dnia 25 kwietnia 2014 r.

Przykładowy dokument XML

Układ informacji i powiązań między nimi w deklaracji na podatek leśny (DL-1) w formacie danych XML

Ogólna struktura dokumentu XSL-FO. Model formatowania. Ogólna struktura dokumentu XSL-FO C.d. Przykład Hello World Użycie szablonu strony

XML DTD XML Schema CSS

Prezentacja dokumentów XML

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

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

METODY REPREZENTACJI INFORMACJI

XML extensible Markup Language 7

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŚLĄSKIEGO

Podstawy XML-a. Zaawansowane techniki programowania

XML extensible Markup Language. Paweł Chodkiewicz

Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty

XML extensible Markup Language. część 5

UCHWAŁA NR XLII/992/13 RADY MIASTA KATOWICE. z dnia 27 listopada 2013 r.

UCHWAŁA NR XL/527/14 RADY MIEJSKIEJ W CZERWIONCE-LESZCZYNACH. z dnia 29 stycznia 2014 r.

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

XHTML - Extensible Hypertext Markup Language, czyli Rozszerzalny Hipertekstowy Język Oznaczania.

Podstawy (X)HTML i CSS

Prezentacja dokumentów XML

Prezentacja dokumentów XML

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

Przegląd języków zapytań

Facelets ViewHandler

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

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

Układ informacji i powiązań miedzy nimi - wzoru deklaracji DO-1

Inżynieria biomedyczna

XPath 2.0 / XSLT 2.0 / XQuery 1.0. Inne standardy związane z XML-em. XPath 2.0 XSLT 2.0. XPath 2.0 funkcyjny język programowania

Otwarte protokoły wymiany informacji w systemach ITS

Warsztaty epuap. Administracja otwarta na obywatela. Kraków 2011 Arkadiusz Walewski, Zbigniew Olszak

1,3,4,2,3,4,0,1,4,5,0. Wówczas największa suma trzech kolejnych liczb (zaznaczone na czerwono) wynosi:

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

Usługi WWW. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska Opole zlipinski@math.uni.opole.pl

Transkrypt:

XML extensible Markup Language część 8

XSL transformations (XSLT) XSLT (ang. extensible Stylesheet Language Transformations) jest opartym na XML językiem transformacji dokumentów XML XSLT umożliwia przetłumaczenie dokumentów z jednego formatu XML na inny format XML, ale również na HTML, PDF i inne. Arkusze XSLT określają w jaki sposób przekształcić poszczególne elementy wejściowe pliku XML. dokument XML arkusz XSLT procesor XSLT plik wyjściowy (XML, HTML, PDF etc.)

<xsl:attribute> Do elementu HTML możemy dodać atrybut będący zawartością jakiegoś elementu bądź wartością atrybutu z dokumentu XML. Przykład <galeria> <obrazek>most.jpg</obrazek> <obrazek>widok.jpg</obrazek> </galeria> <body> <h3>obrazki</h3> <xsl:for-each select="galeria/obrazek"> <img> <xsl:attribute name="src"> <xsl:value-of select="."/> </xsl:attribute> </img> </xsl:for-each> </body>

<xsl:attribute> Przykład Inaczej: <galeria> <obrazek plik="most.jpg"/> <obrazek plik="widok.jpg"/> </galeria> <body> <h3>obrazki</h3> <xsl:for-each select="galeria/obrazek"> <img> <xsl:attribute name="src"> <xsl:value-of select="@plik"/> </xsl:attribute> </img> </xsl:for-each> </body>

Element nie istnieje? Przykład <?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="application/xml" href="arkusz.xsl"?> <spis_osob> <osoba> <imie>marek</imie> <nazwisko>nowak</nazwisko> <wiek>23</wiek> </osoba> <osoba> <imie>tomasz</imie> <nazwisko>pawlak</nazwisko> <wiek>33</wiek> </osoba> <osoba> <imie>piotr</imie> <nazwisko>kaczkowski</nazwisko> </osoba> </spis_osob>

Element nie istnieje? Przykład (cd) <table border="1"> <tr> <th>first name</th><th>last name</th><th>age</th> </tr> <xsl:for-each select="spis_osob/osoba"> <tr> <td><xsl:value-of select="imie"/></td> <td><xsl:value-of select="nazwisko"/></td> <xsl:choose> <xsl:when test="wiek"> <td><xsl:value-of select="wiek"/></td> </xsl:when> <xsl:otherwise> <td style="background-color:red"> <xsl:text>brak danych</xsl:text> </td> </xsl:otherwise> </xsl:choose> </tr> </xsl:for-each> </table>

<xsl:template> Odwołanie do elementów o określonej nazwie. Przykład <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:template match="osoba"> abc </xsl:stylesheet> W przeglądarce:

<xsl:call-template> Instrukcja ta pozwala nam wywołać szablon o określonej nazwie. Składnia: <xsl:call-template name="templatename"> <!-- Content:xsl:with-param* --> </xsl:call-template>

<xsl:attribute> Przykład (cd) Arkusz XSL: Dokument XML: <xsl:template match="/"> <html> <body> <h3>obrazki</h3> <xsl:for-each select="galeria/obrazek"> <xsl:call-template name="test"/> </xsl:for-each> </body> </html> <xsl:template name="test"> abc <galeria> <obrazek plik="most.jpg"/> <obrazek plik="widok.jpg"/> </galeria>

<xsl:attribute> Przykład (cd) Czy można do szablonu przekazać zawartość elementu ew. wartość atrybutu? <xsl:template match="/"> <html> <body> <h3>obrazki</h3> <xsl:for-each select="galeria/obrazek"> <xsl:call-template name="test"/> </xsl:for-each> </body> </html> <xsl:template name="test"> abc?

<xsl:param> Deklaracja lokalnego bądź globalnego parametru. Parametr jest lokalny jeżeli jest zadeklarowany w elemencie template. Składnia: <xsl:param name="name" select="expression"> <!-- Content:template --> </xsl:param> Atrybuty: name określa nazwę parametru (wymagany) select wartość w postaci wyrażenia XPath (opcjonalny)

<xsl:with-param> Definiujemy wartość parametru, który ma być przekazany do szablonu. Składnia: <xsl:with-param name="name" select="expression"> <!-- Content:template --> </xsl:with-param> Atrybuty: name określa nazwę parametru (wymagany) select wartość w postaci wyrażenia XPath (opcjonalny)

<xsl:param> + <xsl:with-param> Jeżeli szablon wymaga parametru: <xsl:template name="tname"> <xsl:param name="pname"/>... $pname... to musimy do przesłać do szablonu przy wywołaniu: <xsl:call-template name="tname"> <xsl:with-param name="pname" select="expression"/> </xsl:call-template>

<xsl:param> + <xsl:with-param> Przykład <body> <h3>obrazki</h3> <galeria> <obrazek plik="most.jpg"/> <obrazek plik="widok.jpg"/> </galeria> <xsl:for-each select="galeria/obrazek"> <xsl:call-template name="test"> <xsl:with-param name="plik" select="." /> </xsl:call-template> </xsl:for-each> </body> <xsl:template name="test"> <xsl:param name="plik"/> <img> <xsl:attribute name="src"> <xsl:value-of select="$plik"/> </xsl:attribute> </img>

<xsl:variable> Deklaracja lokalnej bądź globalnej zmiennej. Zmienna jest loklana jeżeli jest zadeklarowana w elemencie template. Składnia: <xsl:variable name="name" select="expression"> <!-- Content:template --> </xsl:variable> UWAGA: raz ustalona zmienna nie powinna zmieniać wartości!!!

<xsl:variable> Nadanie wartości zmiennej przez atrybut. Przykład <xsl:variable name="osoba" select="'przemek'"/> <xsl:template match="/"> <html><body> <h3>spis</h3> <xsl:copy-of select="$osoba" /> </body></html> W przeglądarce:

<xsl:variable> Nadanie wartości zmiennej przez zawartość elementu. Przykład <xsl:variable name="osoba"> <osoba> <imie>przemek</imie> <nazwisko>kowal</nazwisko> <wiek>42</wiek> </osoba> W przeglądarce: </xsl:variable> <xsl:template match="/"> <html><body> <h3>spis</h3> <xsl:copy-of select="$osoba"/> </body></html>

<xsl:variable> A co jeżeli zmienimy wartość zmiennej? Przykład <xsl:variable name="osoba" select="'przemek'"/> <xsl:template match="/"> <html><body> <h3>spis</h3> <xsl:copy-of select="$osoba" /> </body> </html> <xsl:variable name="osoba" select="'agata'"/> W przeglądarce:

<xsl:variable> Nadanie wartości zmiennej przez wyrażenie XPath. Przykład Dokument XML: <liczby start="1" stop="31"/> Arkusz XSL: <xsl:variable name="a" select="/liczby/@start"/> <xsl:variable name="b" select="/liczby/@stop"/> <xsl:template match="/"> <html> <body> <p>a=<xsl:value-of select="$a"/></p> <p>b=<xsl:value-of select="$b"/></p> </body> </html>

<xsl:variable> Przykład <xsl:variable name="start" select="/tabela/@start"/> <xsl:variable name="stop" select="/tabela/@stop"/> <xsl:variable name="zm1" select="$start + $stop"/> <xsl:variable name="zm2" select="$start + $stop + 10"/> <xsl:template match="/"> <html> <body> <p>zmienna 1 = <xsl:value-of select="$zm1"/></p> <p>zmienna 2 = <xsl:value-of select="$zm2"/></p> </body> </html> W przeglądarce:

<xsl:variable> Rozważmy teraz następujący program: Przykład int start=1; int stop=10; int main() { for(int i=start;i<=stop;i++) { cout<<i; } return 0; }

<xsl:variable> Rozważmy teraz następujący program: Przykład int start=1; int stop=10; void wypisz(int i) { if(i<stop+1) { cout<<i; wypisz(++i); } } int main() { wypisz(start); return 0; }

<xsl:variable> Nadanie wartości zmiennej przez wyrażenie XPath. Przykład Dokument XML: <?xml version="1.0"?> <?xml-stylesheet type="application/xml" href="arkusz.xsl"?> <liczby start="1" stop="10"/> Arkusz XSL: <xsl:variable name="start" select="/liczby/@start"/> <xsl:variable name="stop" select="/liczby/@stop"/>

<xsl:variable> Przykład (cd) <liczby start="1" stop="10"/> Arkusz XSL (cd): <xsl:template name="liczby"> <xsl:param name="index" select="$start"/> <xsl:if test="$index < $stop+1"> <span><xsl:value-of select="$index"/></span> <xsl:call-template name="liczby"> <xsl:with-param name="index" select="$index+1"/> </xsl:call-template> </xsl:if>

<xsl:variable> Przykład (cd) <liczby start="1" stop="10"/> Arkusz XSL (cd): <xsl:template match="/"> <html> <body> <h3>wypisujemy liczby</h3> <xsl:call-template name="liczby"/> </body> </html> W przeglądarce:

<xsl:text> Element umożliwiający dodanie tekstu do pliku wynikowego. Przykład (już omawiany ale zmodyfikowany!) <xsl:template name="liczby"> <xsl:param name="index" select="$start"/> <xsl:if test="$index < $stop+1"> <span><xsl:value-of select="$index"/></span> <xsl:text>,</xsl:text> <xsl:call-template name="liczby"> <xsl:with-param name="index" select="$index+1"/> </xsl:call-template> </xsl:if>

<xsl:text> Przykład (już omawiany ale zmodyfikowany!) <xsl:template name="liczby"> <xsl:param name="index" select="$start"/> <xsl:if test="$index < $stop+1"> <span><xsl:value-of select="$index"/></span> <xsl:if test="$index!=$stop"> <xsl:text>,</xsl:text> </xsl:if> <xsl:call-template name="liczby"> <xsl:with-param name="index" select="$index+1"/> </xsl:call-template> </xsl:if>

<xsl:text> Przykład (już omawiany ale zmodyfikowany!) <xsl:template name="liczby"> <xsl:param name="index" select="$start"/> <xsl:if test="$index < $stop+1"> <span><xsl:value-of select="$index"/></span> <xsl:if test="$index=$stop"> <xsl:text>,</xsl:text> </xsl:if> <xsl:call-template name="liczby"> <xsl:with-param name="index" select="$index+1"/> </xsl:call-template> </xsl:if>