220 likes | 389 Views
Łódź, 22 października 2012 roku. Technologie. mgr inż. Tomasz Węgliński email: tweglinski@kis.p.lodz.pl www: http://www.tweglinski.pl. WYKŁAD 4. XPath. 2/22. Co to jest XPath?. XPath (ang. XML Path Language - język ścieżek XML)
E N D
Łódź, 22 października 2012 roku Technologie mgr inż. Tomasz Węglińskiemail: tweglinski@kis.p.lodz.plwww: http://www.tweglinski.pl
WYKŁAD 4 XPath 2/22
Co to jest XPath? XPath (ang. XML Path Language - język ścieżek XML) -- jest to język służący do adresowania części dokumentu XML. XPath to język deklaratywny, umożliwiający wskazywanie elementów, atrybutów czy całych fragmentów dokumentu XML. Nie zawiera on żadnych struktur powodujących jego przetwarzanie. • XPathjest wykorzystywany w innych standardach, takich jak: • transformacje XSL (XSLT) • odsyłacze XLink -- do wskazywania (adresowania) części dokumentu XML w odesłaniach hipertekstowych • wyrażenia XPointer -- jest to rozszerzenie XPath • schematy XMLSchema • zapytania XQuery -- do tworzenia zapytań XQuery 3/22 Wykład 7: XPath
Cechy języka XPath • XPath to wyrażenie, którego składnia definiuje fragmenty dokumentu XML • XPath używa tzw. „ścieżek”, aby poruszać się po dokumencie XML • XPath posiada bibliotekę funkcji standardowych • XPath to główny składnik XSLT • XPath jest oficjalną rekomendacją organizacji W3C 4/22 Wykład 7: XPath
Budowa wyrażeń XPath • Wyrażenia XPath umożliwiają wydobywanie informacji tekstowychoraz badanie drzewiastej struktury dokumentu. • Struktury omawianego języka mogą zwracać następujące wartości: • boolean – wartość logiczna • number – liczba • string – łańcuch tekstu • node-set – zbiór węzłów W języku XPath węzłem jest cały element dokumentu XML (wraz z podelementami, komentarzami i instrukcjami przetwarzania) 5/22 Wykład 7: XPath
Budowa wyrażeń XPath • Ważne terminy: • Krok (ang. step) – jest to wyrażenie reprezentujące element, atrybut lub funkcję. Element może być określony przez nazwę lub określoną strukturę nawigacyjną. • Ścieżka (ang. path) – składa się z szeregu kroków oddzielonych symbolem „/”. • Wzorzec (ang. pattern) – wyrażenie zawierające szereg alternatywnych ścieżek. wzorzec dane/pozycja[1] | dane/pozycja[2]/kwota[@nr=4] | dane/pozycja[3] ścieżka krok krok 6/22 Wykład 7: XPath
Budowa wyrażeń XPath Zwróć uwagę na znaczenie znaku „|” (!) • Ważne: • Jeżeli symbol „/” występuje samodzielnie lub jest pierwszym znakiem w wyrażeniu, to określa dostęp do korzenia dokumentu. • Jeżeli symbole „//” są pierwszymi znakami w wyrażeniu, to określają dostęp do korzenia dokumentu oraz jego potomków. 7/22 Wykład 7: XPath
http://dret.net/lectures/xml-fall07/img/xpath-axes.png Drzewo XPath Słownik: ancestors – przodkowie parent – rodzic child – dzieci preceding – poprzednik descendant – potomkowie preceding-sibiling – rodzeństwa-poprzedniki sibiling – następnik following-sibiling – rodzeństwa-następniki 8/22 Wykład 7: XPath
Drzewo XPath węzeł odniesienia Element <author> jest węzłem odniesienia, które elementy są: a) ancestorsb) parent c) preceding d) preceding-sibilinge) following f) following-sibiling g) descendant h) child 9/22 Wykład 7: XPath
Składnia XPath • Wyszukiwanie węzłów 10/22 Wykład 7: XPath
Składnia XPath • Wyszukiwanie węzłów – predykaty (ang. predicates) -- służą do wyszukiwania określonych węzłów lub węzłów zawierających określoną zawartość tekstową. 11/22 Wykład 7: XPath
Składnia XPath • Wyszukiwanie węzłów – symbole wystąpień (ang. wildcard) 12/22 Wykład 7: XPath
Składnia XPath • Wyszukiwanie węzłów (alternatywne podejście) Składnia: 13/22 Wykład 7: XPath
Składnia XPath • Wyszukiwanie węzłów (alternatywne podejście) • Po łańcuchu „::” należy dołączyć nazwę elementu, symbol „*”, bądź wywołać jedną z czterech funkcji: • node() • text() • comment() • processing-instruction() 14/22 Wykład 7: XPath
Składnia XPath • Operatory (ang. operators) 15/22 Wykład 7: XPath
Składnia XPath Zobaczmy to w praktyce! http://www.w3schools.com/xpath/xpath_examples.asp 16/22 Wykład 7: XPath
Funkcje XPath • Podstawowe (!) funkcje XPath umożliwiają operowanie na: • liczbach; • łańcuchach tekstów; • wartościach logicznych. • Każda z funkcji zwraca wynik, który może być dalej przetwarzany. • Język XPath umożliwia zagnieżdżanie funkcji. Pełna lista funkcji znajduje się pod adresem: http://www.w3schools.com/xpath/xpath_functions.asp Omawiane funkcje należą do biblioteki funkcji wykorzystywanych w XPath 2.0, XQuery 1.0 i XSLT 2.0. 17/22 Wykład 7: XPath
Funkcje XPath • Operacje dotyczące liczb sum(//pozycja[1]/wartosc | //pozycja[2]/wartosc) 18/22 Wykład 7: XPath
Operacje dotyczące tekstu (wybrane) Funkcje XPath concat(‘Kod: ’, //autor[1]/kod, //autor[1]/miasto) 19/22 Wykład 7: XPath
Funkcje XPath • Operacje dotyczące tekstu (wybrane) 20/22 Wykład 7: XPath
Funkcje XPath • Operacje dotyczące wartości logicznych • Przykład wyrażenia XPath: • boolean(//pozycja[1]/wartosc > pozycja[2]/wartosc) = true() 21/22 Wykład 7: XPath
Ograniczenia XPath • Język XPath nie posiada mechanizmów do: • wyszukiwania łańcuchów tekstów rozciągających się poprzez kilka elementów; • wskazywania na znaczniki (początkowy lub końcowy); • wyszukiwania jednostek (encji) i sekcji CDATA • oznaczania punktów (określonych miejsc w tekście) lub zakresów (obszarów pomiędzy dwoma punktami). W przypadku konieczności korzystania z wymienionych funkcjonalnościnależy sięgnąć po język XPointer, który jest rozszerzeniem języka XPath. 22/22 Wykład 7: XPath