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

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

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

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

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

XML extensible Markup Language. część 3

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

XML extensible Markup Language 3

XML extensible Markup Language. część 6

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

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

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

XSLT. Patryk Czarnik. 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

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

XML Path Language (XPath)

XML extensible Markup Language. część 4

Extensible Markup Language III

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

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

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

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

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

XML extensible Markup Language. część 8

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

Wprowadzenie do XSLT

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

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

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

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

Rodzaje przetwarzania XSLT (1)

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

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

Prezentacja i transformacja

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

XML i nowoczesne metody zarządzania treścią

UCHWAŁA NR 135/XXVII/13 RADY MIASTA ZAMBRÓW. z dnia 26 marca 2013 r.

Aplikacje internetowe. Interfejs użytkownika

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

Ćwiczenia laboratoryjne nr 8 Podstawy języka XML.

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

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŚLĄSKIEGO

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

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

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

Przykładowy dokument XML

XML i nowoczesne technologie zarządzania treścią

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŚLĄSKIEGO

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.

Wprowadzenie do standardu XSL

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

Aplikacje internetowe laboratorium XML, DTD, XSL

Przegląd języków zapytań

Prezentacja i transformacja

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

Podstawy (X)HTML i CSS

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

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

Przykładowy dokument XML

DZIENNIK URZĘDOWY WOJEWÓDZTWA ŚLĄSKIEGO

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

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

METODY REPREZENTACJI INFORMACJI

XML i nowoczesne technologie zarządzania treścią

Prezentacja dokumentów XML

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

Prezentacja dokumentów XML

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

XML & XSLT. Programowanie w Javie 2

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

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

Informacja podatku łączny styl

UKŁAD INFORMACJI I POWI

Michał Bielecki, KNI 'BIOS'

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

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

Innowacja pedagogiczna Pasja programowania ZESPÓŁ SZKÓŁ W CHOROSZCZY

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

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

Przykładowy dokument XML

Zaawansowane aplikacje WWW - laboratorium

INSTALACJA I KONFIGURACJA SERWERA PHP.

Aplikacje WWW - laboratorium

SSK - Techniki Internetowe

UKŁAD INFORMACJI I POWI

Kraków, dnia 10 czerwca 2015 r. Poz UCHWAŁA NR VIII/60/2015 RADY MIEJSKIEJ W KĘTACH. z dnia 29 maja 2015 roku

DTD - encje ogólne i parametryczne, przestrzenie nazw

KONCEPCJA ALGORYTMU SPRAWDZANIA KOMPLETNOŚCI DANYCH W PROCESIE ICH WYMIANY MIĘDZY SYSTEMAMI INFORMATYCZNYMI PRZEDSIĘBIORSTW PRODUKCYJNYCH

Środowisko XML (Extensible Markup Language).

UCHWAŁA NR XXII/141/2013 RADY GMINY BOJSZOWY. z dnia 13 marca 2013 r.

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

Szablon główny (plik guestbook.php) będzie miał postać:

The Binder Consulting

Inżynieria biomedyczna

Technologie informacyjne lab. 4

Dlaczego Python jest lepszy od XSLT?

Referat z przedmiotu Technologie Internetowe SPIS TREŚCI

Aplikacje WWW - laboratorium

Przetwarzanie tekstu 2. Operacje na plikach tekstowych w systemie Linux

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

Transkrypt:

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Przetwarzanie dokumentów XML za pomocą procesora XSLT (Zajęcia 06 11.04.2016 r.) Przetwarzanie dokumentów XML oznacza zwykle, wyłuskanie z nich danych oraz przetwarzanie ich na inny format np HTML lub PDF. Jedną z metod przekształcania i przetwarzania dokumentów XML jest technika XSLT (Extensible Stylesheet Language Transformation). Diagram modelu przekształcenia jest następujący: Pliki opisujące transformację XSLT to również pliki w formacie XML w których nalezy odwoływać się do przestrzeni nazw: xmlns:xsl= http://www.w3.org/1999/xsl/transform. Procesor XSLT umożliwiający wykonywanie przekształceń w systemie Linux jest zainstalowany w lini komend: > xsltproc plik.xsl plik.xml w wyniku działania tego polecenia na ekranie otrzymamy gotowy kod przekształcenia. Czasem jednak wygodniej jest od razu zapisać przekształcenie do pliku co można osiągnąć przez wykonanie polecenia: > xsltproc o wynik.html plik.xsl plik.xml W związku z tym że pliki do przekształceń są plikami XML należy rozpocząć je od prologu XML, a następnie określamy dokument XSLT. W tym miejscu musimy również określić co ma być wynikiem przekształcenia przez element <xsl:output />. Minimalna postać pliku z przekształceniem wygląda następująco: xmlns:xsl=" http://www.w3.org/1999/xsl/transform "> <xsl:output method="html" encoding="utf 8" /> <! ty znajdują się polecenia przekształcające > Kolejnym podstawowym elementem pliku z przekształceniem jest tzw. template dla elementu głównego który dokonuje identyfikacji głównego węzła dokumentu XML poszukując go za pomocą odniesienia w formacie XPath: /. <! ty znajdują się polecenia przekształcające lub tekst > W zasadzie każda reguła <template> posiada atrybut match którego wartością jest wyrażaenie XPath. Procesor XSLT analizuje drzewo XML od węzła do węzła i jeżeli na trafi na pasujące wyrażenie XPath

to stosuje dla niego regułę zapisaną we wzorcu. Należy również zwrócić uwagę że wszystkie elementy nie pochodzące z przestrzni nazw z prefixem xsl są kopiowane przez procesor XSLT do wynikowego dokumentu. Dlatego w łątwy sposób możemy dodoawać znaczniki html niezbędne do utworzenia strony na bazie danych przkształconych z plików XML. Przykładowy plik XML: <nobeldata v1> <prizes continent="america" prizes="0" decade="1900s"/> <prizes continent="america" prizes="0" decade="1910s"/> <prizes continent="america" prizes="0" decade="1920s"/> <prizes continent="america" prizes="3" decade="1930s"/> <prizes continent="america" prizes="2" decade="1940s"/> <prizes continent="america" prizes="1" decade="1950s"/> <prizes continent="america" prizes="2" decade="1960s"/> <prizes continent="america" prizes="3" decade="1970s"/> <prizes continent="america" prizes="3" decade="1980s"/> <prizes continent="america" prizes="2" decade="1990s"/> </nobeldata v1> Chcemy przkształcić dane zawarte w pliku XML do postaci tabeli osadzonej na prostej stronie internetowej. Do tego celu wykorzystujemy przekształcenie XSLT w nastęþującej postaci: xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:output method="html" encoding="utf 8" /> <html> <head> <title>nagrody Nobla w dziedzinie literatury</title> </head> <h1>nagrody Nobla w dziedzinie literatury</h1> Liczba nagrod Nobla przyznanych Amerykanom w poszczegolnych dekadach dwudziestego wieku <table border="1"> <tr> <th>dziesieciolecie</th> <th>nagrody</th> </tr> <xsl:apply templates /> </table> </html> <xsl:template match="prizes"> <tr> <td>

<xsl:value of select="@decade"/> </td> <td> <xsl:value of select="@prizes"/> </td> </tr> Jak widać w głownym wzorcu znajdując się elemeny budujące strone html oraz polecenie dla procesora xslt nakazujące zastosowanie wzorców. Jako że w naszym przekształceniu mamy tylko jeden wzorzec odnoszący się do elementu potomnego <prizes> to on zostanie zastosowany. We wzorcu przekształcenia dla węzła <prizes> budowana jest struktura tabeli w html, a wartości do wypełnienia tebali są agregowane dzięki zastosowaniu polecenia <xsl:value of select= XPath /> gdzie wartość atrybutu select jest wyrażeniem XPath wskazującym na żadane dane. Wyrażenie wzorca będzie wykonane tyle razy ile występuje pasujący element do wzorca. Kolejny przykład bardzo prosty przykład: <invited> <name>(tbc) Giuseppe Battistoni</name> <institute>national Institute of Nuclear Physics, Milano, Italy</institute> <name>mikhail Bashkanov</name> <institute>university of Tuebingen, Germany</institute> <name>piotr Białas</name> <institute>jagiellonian University, Cracow, Poland</institute> <name>caterina Bloise</name> <institute>national Institute of Nuclear Physics, LNF Frascati, Italy</institute> </invited> oraz przekształcenie: xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:output method="html" encoding="utf 8" /> <html> <body>

<ul style="font size:17px;line height:150%"> <xsl:apply templates /> </ul> </body> </html> <xsl:template match="speaker"> <li> <b><xsl:value of select="name"/></b> <i><xsl:value of select="institute"/></i> </li> Dalsze przykłady zastosowania <xsl:apply templates> <catalog> <cd> <title>empire Burlesque</title> <artist>bob Dylan</artist> <country>usa</country> <company>columbia</company> <price>10.90</price> <year>1985</year> </cd> <cd> <title>hide your heart</title> <artist>bonnie Tyler</artist> <country>uk</country> <company>cbs Records</company> <price>9.90</price> <year>1988</year> </cd> </catalog> Korespondujący plik z przekształceniem: <?xml version="1.0" encoding="iso 8859 1"?> xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <html> <body> <h2>my CD Collection</h2> <xsl:apply templates/> </body> </html>

<xsl:template match="cd"> <xsl:apply templates select="title"/> <xsl:apply templates select="artist"/> <xsl:template match="title"> Title: <span style="color:#ff0000"> <xsl:value of select="."/></span> <br /> <xsl:template match="artist"> Artist: <span style="color:#00ff00"> <xsl:value of select="."/></span> <br /> 3) Dodatkowe funkcje XSLT (cały czas korzystamy z pliku XML z poprzednich zajęć o nazwie katalog.xml): instrukcja warunkowa if <xsl:if test="warunek"> instrukcje w przypadku spełnienia warunku </xsl:if> przykład: <xsl:template match="cd"> <xsl:if test="price > 5"> <xsl:apply templates select="title"/> <xsl:apply templates select="artist"/> </xsl:if> pętla for each <xsl:for each select="wyrazenie XPath"> instrukcje </xsl:for each> przykład ( w template match= / ) <xsl:for each select="catalog/cd"> Artist: <span style="color:#ff0000"> <xsl:value of select="artist"/></span> Title: <span style="color:#00ff00"> <xsl:value of select="title"/></span> </xsl:for each>

sortowanie za pomoca funkcji sort elementów wypisywanych w pętli for each: <xsl:sort select="co ma być sortowane"/> instrukcja nie posiadająca struktury!!! przykład: <xsl:for each select="catalog/cd"> <xsl:sort select="artist"/> Artist: <span style="color:#ff0000"> <xsl:value of select="artist"/></span> Title: <span style="color:#00ff00"> <xsl:value of select="title"/></span> </xsl:for each> instrukcja warunkowa wyboru choose : <xsl:choose> <xsl:when test="warunek 1"> instrukcja kiedy warunek 1 spełniony <xsl:when test="warunek 2"> instrukcja kiedy warunek 2 spełniony <xsl:otherwise> instrukcja kiedy żaden z waunków nie jest spełniony </xsl:otherwise> </xsl:choose> przykład: <xsl:choose> <xsl:when test="price > 10"> Price:<span style="color:#ff00ff"> <xsl:value of select="price"/></span> <xsl:when test="price > 9"> Price:<span style="color:#222999"> <xsl:value of select="price"/></span> <xsl:otherwise> Price:<span style="color:#555aaa"> <xsl:value of select="price"/></span> </xsl:otherwise> </xsl:choose> Zadanie na ćwiczenia: Proszę przygotować plik XML zawierający dowolne dane tabelaryczne np. bazę adresów, spis książek, spis smachodów, tak aby zawierały kilka elementów zagnieżdzonych. Następnie proszę przygotować przekształcenie XSLT bazujące na podanych przykładach umożliwiające otrzymanie w wyniku przekształcenia prostej strony prezentującej dane zawarte w przygotowanym pliku XML.