XSLT - tweglinski.pl

Download Report

Transcript XSLT - tweglinski.pl

Łódź, 22 października 2012 roku

Technologie

mgr inż. Tomasz Węgliński email: [email protected]

www: http://www.tweglinski.pl

WYKŁAD 5 Transformacje XSL

2/26

Co to znaczy transformacja?

Transformacją

nazywamy przekształcenie dokumentu XML w inny dokument XML lub też inny dokument rozpoznawany przez przeglądarki, taki jak HTML lub XHTML.

Językiem opisującym sposób prezentacji (przekształceń) dokumentu XML jest język

XSL

(ang.

Extensible Stylesheet Language

– – w wolnym tłumaczeniu Rozszerzalny Język Arkuszy Stylów) W większości przypadków transformacje XSL (skr.

XSLT

) dokonuje się w celu oddzielenia warstwy informacji od warstwy prezentacji.

 Działanie

procesora XSLT

powoduje powstawanie dokumentu wynikowego, którym może być:    zmieniony wejściowy dokument XML (przekształcenie drzewa) nowy arkusz XSLT dokument (np. HTML) przeznaczony do wyświetlenia w przeglądarce (przedstawiający dane zgromadzone w dokumencie XML) Wykład 4: Transformacje XSL 3/26

Procesor XSLT

Procesor XSLT

przetwarza zawarte w standardzie instrukcje.

Działanie procesora XSLT przedstawia schemat:

Procesor pobiera plik XML oraz arkusz stylów XSLT, a następnie przekształca go w wynikowy dokument przeznaczony do wyświetlenia w przeglądarce

Wykład 4: Transformacje XSL 4/26

Procesor XSLT   

XSLT w przeglądarkach internetowych:

XSLT w Mozilli MSXML Parser - XML-owy silnik IE          

Powszechnie wykorzystywane procesory XSLT:

 Saxon (Java oraz .NET), http://saxon.sourceforge.net/ )  AltovaXML 2010, darmowy silnik XSLT 1.0/2.0 (linia komend, COM, Java, .NET, www.altova.com

) XslCompiledTransform (.NET Framework, TransforMiiX (C++, Xalan-Java (Java, Xalan-C++ (C++, http://msdn.microsoft.com

www.mozilla.org/projects/xslt/ http://xml.apache.org/xalan-j/ http://xml.apache.org/xalan-c/ ) ) ) ) libxslt/xsltproc (C, XT (Java, Sablotron (C++, http://xmlsoft.org/XSLT/ ) http://www.blnz.com/xt/index.html

, autor James Clark) www.gingerall.com/charlie/ga/xml/p_sab.xml

msxsl.exe (C++, msdn.microsoft.com) PHP 5 funkcje XSLT ( ) http://www.php.net/manual/en/book.xsl.php

) Wykład 4: Transformacje XSL 5/26

Możliwości XSLT  Standard XSLT umożliwia dokonywanie takich operacji jak:  dodawanie sufiksów oraz prefiksów do przetwarzanego tekstu;  usuwanie, tworzenie, sortowanie oraz przestawianie elementów (węzłów, gałęzi drzewa dokumentu);  ponowne wykorzystywanie elementów w innym miejscu danego dokumentu;  automatyczne numerowanie;  operacje matematyczne, np. sumowanie, mnożenie, dzielenie etc.;  przetwarzanie łańcuchów znaków;  wyszukiwanie określonych struktur, węzłów w drzewie.

Wykład 4: Transformacje XSL 6/26

XSLT & XPath  XSLT wykorzystuje język

XPath

 XSLT wykorzystuje język XPath do wyszukiwania żądanej informacji w dokumencie XML.  Dzięki XPath możliwa jest nawigacja po elementach i atrybutach w drzewie XML.

W procesie transformacji, XSLT wykorzystuje język

XPath

w celu

zdefiniowania elementów

źródłowego dokumentu XML, które pasują do jednego lub więcej predefiniowanych szablonów.

Kiedy takie dopasowanie zostaje znalezione, XSLT przetworzy

pasujące elementy

dokumentu źródłowego w

dokument wynikowy

.

Wykład 4: Transformacje XSL 7/26

Przeglądarki XSLT Wszystkie popularne

przeglądarki internetowe

wspierają standard XSLT 

Mozilla Firefox

Firefox supports XML, XSLT, and XPath from

version 3

.

Internet Explorer

Internet Explorer supports XML, XSLT, and XPath from

version 6

.

Internet Explorer 5

is NOT

compatible with the official W3C XSL Recommendation.

Google Chrome

Chrome supports XML, XSLT, and XPath from

version 1

.

Opera

Opera supports XML, XSLT, and XPath from

version 9

. Opera 8 supports only XML + CSS.

Apple Safari

Safari supports XML and XSLT from

version 3

.

Wykład 4: Transformacje XSL 8/26

Podstawy XSLT  Deklaracja arkusza stylów XSLT:

W praktyce ten sposób deklaracji stosujemy częściej lub: deklaracja przestrzeni nazw dla arkusza stylów XSLT

Uwaga: Jeżeli używamy przestrzeni nazw XSLT, musimy również podać parametr version z wartością 1.0.

Wykład 4: Transformacje XSL 9/26

Podstawy XSLT Transformacja XSLT –

Krok 1:

Dokument XML Jak zaprezentować dane XML w bardziej przyjazny sposób?

Wykład 4: Transformacje XSL 10/26

Podstawy XSLT Transformacja XSLT –

Krok 2:

Arkusz stylów XSL To wygląda jak zwykły dokument HTML!

Wykład 4: Transformacje XSL 11/26

Podstawy XSLT Transformacja XSLT –

Krok 3:

Dołączenie arkusza stylów XSL do XML

powiązanie arkusza stylów XSL z dokumentem XML

Zobaczmy rezultat: http://www.w3schools.com/xsl/cdcatalog_with_xsl.xml

Wykład 4: Transformacje XSL 12/26

Wzorce Tworzenie szablonów stylów to budowanie

wzorców

porównywany jest przetwarzany dokument wejściowy.

do których  Element definiującym pojedynczy wzorzec jest Zawiera on atrybuty:  match – oznacza zakres stosowania wzorca;  mode – oznacza tryb stosowania wzorca;  name – oznacza nazwę wzorca.

 Najczęściej wykorzystywany jest atrybut match , który składa się z szeregu

wskazań

(

location path

) rozdzielonych od siebie symbolem |.

 Poszczególne wskazanie spełnia reguły języka

XPath

.

Wykład 4: Transformacje XSL 13/26

Wzorce  W atrybucie match dozwolone jest umieszczanie odwołań:  do

korzenia drzewa

(za pomocą symbolu „/”)  do

elementów

(poprzez ich nazwę)  do

atrybutów

(za pomocą nazwy atrybutu poprzedzonej „@”)  do

konkretnych wystąpień węzła

(poprzez nazwę węzła z numerem wystąpienia umieszczonym wewnątrz nawiasów kwadratowych „[]”  do

zawartości tekstowej

(za pomocą funkcji text() )  do

węzła

(za pomocą funkcji node() )  do

komentarza

(za pomocą funkcji comment() ) Wykład 4: Transformacje XSL 14/26

Wzorce  Przykłady wzorców: - określa szablon przetwarzający zawartość elementu autorzy ; - określa szablon przetwarzający zawartość elementów autor , tytuł

oraz

wartosc ; - określa szablon przetwarzający zawartość elementów nr_okresu oraz wartosc

znajdujących się

w elemencie pozycja ; - określa szablon przetwarzający zawartość elementu imie , znajdującego się w

drugim wystąpieniu

elementu autor ; - określa szablon przetwarzający zawartość elementu pozycja , w którym atrybut okres ma wartość miesiac ; Wykład 4: Transformacje XSL 15/26

Wzorce 

Wywoływanie szablonów (wzorców)

- standard XSLT umożliwia wywoływanie utworzonych szablonów za pomocą elementów:  xsl:apply-templates  xsl:call-template

szablon główny przetwarzający korzeń dokumentu dołączenie wszystkich dostępnych szablonów dołączenie szablonu title

Wykład 4: Transformacje XSL 16/26

Wzorce 

Wywoływanie szablonów (wzorców)

- standard XSLT umożliwia wywoływanie utworzonych szablonów za pomocą elementów:  xsl:apply-templates  xsl:call-template

szablon główny przetwarzający korzeń dokumentu dołączenie wszystkich dostępnych szablonów dołączenie szablonu title

Wykład 4: Transformacje XSL 17/26

Wzorce 

Wywoływanie szablonów (wzorców)

- standard XSLT umożliwia wywoływanie utworzonych szablonów za pomocą elementów:  xsl:apply-templates  xsl:call-template wywołanie szablonu o podanej nazwie Element xsl:call-template

nazwę

odwołuje się do szablonu podaną w parametrze name elementu

dopasowując

xsl:template Element xsl:apply-templates w parametrze select zawiera wyrażenie XPath, które jest porównywane do wartości atrybutu match (

dopasowanie węzłów, nie nazw

(!)) Wykład 4: Transformacje XSL 18/26

Podstawowe elementy  Standard XSLT zawiera ok. 35 podstawowych elementów kontrolujących proces transformacji dokumentów XML.

 Najczęściej stosowanymi elementami są:             apply-templates call-template

choose / when / otherwise copy | copy of for-each if sort

stylesheet | transform template

text value-of

variable Pełną listę podstawowych elementów standardu XSLT można znaleźć pod adresem: http://www.w3schools.com/xsl/ xsl_w3celementref.asp

Wykład 4: Transformacje XSL 19/26

Podstawowe elementy

pętla po wszystkich podelementach

cd

, elementu

catalog

sortowanie po elemencie

artist

pobranie wartości elementu

Wykład 4: Transformacje XSL 20/26

Podstawowe elementy  Wynik: Wykład 4: Transformacje XSL 21/26

Podstawowe elementy  Element :  Element / / : Wykład 4: Transformacje XSL 22/26

Podstawowe elementy  Wynik: Wykład 4: Transformacje XSL 23/26

Podstawowe elementy  Element

wstawia określony tekst we wskazane miejsce

Element posiada atrybut disable-output-escaping , dzięki któremu możemy wstawiać znaki specjalne bez konieczności stosowania encji (

!

) Wykład 4: Transformacje XSL 24/26

Podstawowe elementy  Element | - standard XSLT umożliwia również kopiowanie

całych elementów (węzłów)

 xsl:copy – oznacza kopiowanie

aktualnego

węzła (bez atrybutów!!) Wykład 4: Transformacje XSL

skopiowanie aktualnego elementu wraz z zawartością

25/26

Podstawowe elementy  Element |  xsl:copy-of – oznacza kopiowanie

określonego

węzła Wykład 4: Transformacje XSL Użycie xsl:copy-of powoduje skopiowanie atrybutów elementu (!)

skopiowanie

wybranego

elementu wraz z zawartością

26/26