Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałApolinary Kałużyński Został zmieniony 10 lat temu
1
XML – eXtensible Markup Language 4
2
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. dokument XML arkusz XSLT plik wyjściowy (dokument XML, HTML, PDF etc.) procesor XSLT Arkusze XSLT określają w jaki sposób przekształcić poszczególne elementy wejściowe pliku XML.
3
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> INSTRUKCJE OKREŚLAJĄCE PRZEKSZTAŁCENIA ELEMENTÓW XSL transformations (XSLT) Arkusz XSLT ma następującą strukturę W dokumencie XML, który ma być przekształcamy umieszczamy Zapisujemy go w pliku z rozszerzeniem xsl np. people.xsl.
4
Alan Turing computer scientist mathematician cryptographer Richard Feynman physicist XSL transformations (XSLT) Rozważmy następujący dokument XML
5
XSL transformations (XSLT) Przykład 1 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> Wynik AlanTuringcomputer scientistmathematiciancryptographerRichardFeynmanphysicist Jeżeli chcemy dokonać transformacji wybranego elementu z dokumentu XML musimy się do niego odwołać w arkuszu XSL przez element …
6
Przykład 2 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> A Person Wynik A PersonA Person XSL transformations (XSLT) W dokumencie wejściowym są dwa elementy person. Procesor napotykając te elementy zamienia je na APerson.
7
Przykład 3 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> A Person Wynik A Person W dokumencie wejściowym są dwa elementy person. Procesor napotykając te elementy zamienia je na A Person umieszczone w oddzielnych akapitach. XSL transformations (XSLT)
8
Przykład 4 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> A Person Arkusz XSLT musi być (jako dokument XML) prawidłowo sformatowany (ang. well formed). Poniższy arkusz XML nie jest poprawnie sformatowany. Musi zatem spełniać wszystkie wymagania związane z prawidłowym formatowaniem.
9
XSL transformations (XSLT) Jeżeli chcemy wybrać z wejściowego dokumentu XML pewien element w arkuszu XSLT stosujemy element Przykład 5 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
10
XSL transformations (XSLT) Wynik Alan Turing Richard Feynman Procesor napotykając elementy person pobiera z nich wartości elementów name i umieszcza w oddzielnych akapitach. Procesor XSLT przechodzi przez elementy dokumentu XML metodą PREORDER. Atrybututem match elementu template wybieramy węzły przetwarzanego dokumentu XML. Z wyselekcjonowanych w ten sposób węzłów już można pobrać (i wstawić do wyniku) dane, można je także skierować do dalszego przetwarzania, poprzez umieszczenie dyrektywy xsl:apply-templates.
11
XSL transformations (XSLT) Przykład 6 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> W poniższym przykładzie wybieramy wartości elementów last_name i first_name będących dziećmi elementu name. Zauważmy, że procesor najpierw przetwarza nazwisko a później imię.
12
XSL transformations (XSLT) Wynik Turing Alan computer scientistmathematiciancryptographer Feynman Richard physicist Jeżeli chcemy aby w dokumencie wynikowym były tylko wartości elementów last_name i first_name musimy wyraźnie to zapisać. Musimy zapisać, że procesor ma przetwarzać element name.
13
Przykład 7 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> XSL transformations (XSLT) W tym miejscu rozpoczyna się przetwarzanie elementu name. Procesor zaczyna szukać elementu template z wartością match=name.
14
XSL transformations (XSLT) Wynik Turing Alan Feynman Richard Kolejność elementów w arkuszu XSLT nie ma znaczenia. Ważna jest tylko kolejność elementów w dokumencie XML. Załóżmy teraz, że chcemy zawartość elementu people umieścić w dokumencie HTML o tytule Famous Scientists. Musimy zatem w odpowiednim miejscu umieścić instrukcję przetwarzania dzieci korzenia ( people )
15
XSL transformations (XSLT) Przykład 8 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> Famous Scientists
16
XSL transformations (XSLT) Przykład 8 cd
17
XSL transformations (XSLT) W arkuszach XSLT możemy transformować nie tylko wartości elementów. Możliwe jest także odwoływanie się do atrybutów. Wykorzystujemy w tym celu element … Jeżeli chcemy odwołać się do wszystkich atrybutów jako nazwe_atrybutu podajemy *. …
18
Przykład 9 XSL transformations (XSLT) <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> Born: Element zwraca wartość atrybutu born.
19
XSL transformations (XSLT) Wynik AlanTuring Born: 1912 RichardFeynman Born: 1918 Jeżeli chcemy odwołać się do dowolnego elementu w dokumencie XML w arkuszu XSLT stosujemy element * - dowolny element, / - korzeń, | - alternatywa. Powyższy element spowoduje, że procesor dotrze do wszystkich elementów i korzenia z wyjątkiem atrybutów i elementów z przestrzeni nazw które nie są dziećmi swoich rodziców.
20
XSL transformations (XSLT) Dodajmy do rozważanego przykładu przestrzeń nazw: Alan Turing computer scientist mathematician cryptographer Richard Feynman physicist
21
XSL transformations (XSLT) Rozważane wcześniej arkusze XSLT nie mają zastosowania do tak zmodyfikowanego dokumentu XML. Informację o przestrzeni nazw musimy dodać do arkusza XSLT. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:pe="http://www.cafeconleche.org/namespaces/people">... Ponadto do elementów w dokumencie XML pochodzących z tej przestrzeni nazw musimy odwoływać się za pomocą zdefiniowanych prefixów.
22
Przykład 10 XSL transformations (XSLT) <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:pe="http://www.cafeconleche.org/namespaces/people"> Famous Scientists
23
XPath XPath to język służący do adresowania części dokumentu XML. Dzięki XPath potrafimy odwoływać się do różnych elementów dokumentu XML. Rozważmy przykładowy dokument XML dla którego zapiszemy przykładowe adresowania.
24
Alan Turing computer scientist mathematician Richard Feynman physicist XPath
25
1. Wszystkie elementy person będące dziećmi elementu people Przykładowe adresowania: /people/person 2. Wszystkie elementy person znajdujące się w dokumencie //person Ogólnie /t1/t2/t3/…/tn W przypadku rozważanego dokumentu XML wyniki powyższych adresowań będą identyczne.
26
XPath 3. Atrybut @born znajdujący się w elemencie person /person/@born 4. Atrybut @born znajdujący się w elemencie person i mający wartość "1912" /person/@born= "1912" 5. Wszystkie osoby urodzone w roku "1912" //person[@born= "1912"] 6. Pierwszy element person z dokumentu XML //person[1]
27
7. Ostatnia profesja ( profession ) z pierwszego elementu person //person[1]/profession[last()] XPath 8. Wszystkie elementy person nie posiadające daty urodzenia //person[not @born]
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.