XPath - tweglinski.pl

Download Report

Transcript XPath - 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 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.

 XPath jest 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 Wykład 7: XPath 3/22

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 Wykład 7: XPath 4/22

Budowa wyrażeń XPath Wyrażenia XPath umożliwiają wydobywanie informacji tekstowych oraz 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) Wykład 7: XPath 5/22

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

Wykład 7: XPath 6/22

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.

Wykład 7: XPath 7/22

Drzewo XPath http://dret.net/lectures/xml-fall07/img/xpath-axes.png

Słownik: ancestors preceding – przodkowie parent – rodzic child – dzieci – poprzednik descendant – potomkowie preceding-sibiling sibiling – następnik following-sibiling – rodzeństwa-poprzedniki – rodzeństwa-następniki Wykład 7: XPath 8/22

Drzewo XPath

węzeł odniesienia

Element jest węzłem odniesienia, które elementy są: a) ancestors e) following b) parent c) preceding f) following-sibiling d) preceding-sibiling g) descendant h) child Wykład 7: XPath 9/22

Składnia XPath  Wyszukiwanie węzłów Wykład 7: XPath 10/22

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ą.

Wykład 7: XPath 11/22

Składnia XPath  Wyszukiwanie węzłów –

symbole wystąpień

(ang.

wildcard

) Wykład 7: XPath 12/22

Składnia XPath  Wyszukiwanie węzłów (alternatywne podejście)

Składnia:

Wykład 7: XPath 13/22

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() Wykład 7: XPath 14/22

Składnia XPath  Operatory (ang.

operators

) Wykład 7: XPath 15/22

Składnia XPath

Zobaczmy to w praktyce!

http://www.w3schools.com/xpath/xpath_examples.asp

Wykład 7: XPath 16/22

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.

Wykład 7: XPath 17/22

Funkcje XPath  Operacje dotyczące liczb sum(//pozycja[1]/wartosc | //pozycja[2]/wartosc) Wykład 7: XPath 18/22

Funkcje XPath  Operacje dotyczące tekstu (wybrane) concat(‘Kod: ’, //autor[1]/kod, //autor[1]/miasto) Wykład 7: XPath 19/22

Funkcje XPath  Operacje dotyczące tekstu (wybrane) Wykład 7: XPath 20/22

Funkcje XPath  Operacje dotyczące wartości logicznych  Przykład wyrażenia XPath: boolean(//pozycja[1]/wartosc > pozycja[2]/wartosc) = true() Wykład 7: XPath 21/22

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ści należy sięgnąć po język

XPointer

, który jest rozszerzeniem języka XPath.

Wykład 7: XPath 22/22