Opracowany przez | Konsorcjum World Wide Web |
---|---|
Pierwsza wersja | 1999 |
Ostatnia wersja | 3,1 (21 marca 2017 r) |
Czytaj formaty | Extensible Markup Language i JavaScript Object Notation |
Rodzaj |
Język zapytań Język programowania |
XPath to język zapytań służący do lokalizowania części dokumentu XML . Pierwotnie stworzony w celu zapewnienia składni i semantyki dla funkcji wspólnych dla XPointer i XSL , XPath został szybko przyjęty przez programistów jako łatwy w użyciu język zapytań.
Wyrażenie XPath to ścieżka lokalizacji składająca się z kroków lokalizacyjnych (zwanych również krokami w języku francuskim ). Kroki lokalizacji są oddzielone znakiem „/”.
Każdy etap lokalizacji składa się z trzech elementów:
Oś wskazuje kierunek, w którym należy poruszać się w drzewie XML, względem bieżącego węzła lub od korzenia. Na przykład child::wybierze węzły potomne bieżącego węzła. W XPath, gdy oś nie jest określona, jest ona niejawnie osią dzieci ( child::). Inną szeroko stosowaną osią są atrybuty, reprezentowane przez znak at ( @). Na wszystkich 13 osiach można wyrazić relacje genealogiczne lub uwzględniające kolejność czytania dokumentu.
Test węzłów pozwala wybrać lub nie węzły według ich nazwy lub typu. Na przykład test text()wybierze wszystkie węzły tekstu tekstowego (w rozważanej osi).
Predykaty to bardziej złożone wyrażenia; służą do filtrowania węzłów wybranych przez oś i do testu węzłów. Predykaty są zapisywane w nawiasach kwadratowych („[”, „]”). Jeśli predykat ma wartość true, zostaną wybrane odpowiednie węzły.
W ten sposób XPath oferuje sekwencyjne wyszukiwanie według węzłów. Wynikiem oceny wyrażenia XPath jest sekwencja zawierająca węzły i wartości atomowe (teksty, wartości logiczne…).
W zależności od charakteru (liczba, wartość logiczna, tekst) wybranych wartości, XPath oferuje szereg funkcji. Funkcje te są ograniczone, ponieważ są przeznaczone bardziej do wykorzystania w predykatach niż do przetwarzania wybranych danych.
Funkcje, które mają zastosowanie do najczęściej używanych liczb to: sum (), count () i operatory arytmetyczne. Funkcje, które mają zastosowanie do najczęściej używanych ciągów to: substring (), string-length (), concat ().
Rozważmy następujący dokument XML:
<?xml version="1.0"?> <racine> <encyclopedie nom="Wikipedia" site="http://fr.wikipedia.org/"> <article nom="XPath"> <auteurs> <auteur> <nom>Dupont</nom> </auteur> <auteur> <nom>Dubois</nom> </auteur> </auteurs> </article> </encyclopedie> </racine>Wyrażenie XPath | Wynik |
---|---|
/ | wybiera „fikcyjny” węzeł, nazywany elementem głównym , który obejmuje cały dokument, w tym typ dokumentu <? xml version = "1.0"?> |
/ root | wybierz pusty węzeł, ponieważ nie ma elementu „root” (ale „root” ) |
// artykuł | wybiera wszystkie „artykuły” w dokumencie, gdziekolwiek się one znajdują |
/ root / encyklopedia | wybiera jedyny element „encyklopedii” , ponieważ jest to jedyny element potomny „root” noszący tę nazwę |
// artykuł [@ name = 'XPath'] | wybiera wszystkie elementy dokumentu „artykuł”, gdziekolwiek się one znajdują, mając atrybut „nazwa” o wartości „XPath” |
Wszystkie te wyrażenia XPath są bezwzględne (zaczynają się od znaku „/” ), to znaczy dają ten sam wynik niezależnie od kontekstu. Poniższe wyrażenia są względne . Jeśli obecny kontekst jest jedynym elementem „encyklopedii” , podają:
Wyrażenie XPath | Wynik |
---|---|
pozycja | wybierz element „artykuł” |
korzeń | nie wybiera niczego, biorąc pod uwagę kontekst |
artykuł [1] / autorzy / autor [2] | wybiera drugiego autora (Dubois) pierwszego artykułu |
artykuł [liczba (artykuł / autorzy / autor)> 1] | wybierz artykuły, które mają co najmniej 2 autorów |
../korzeń | wybiera element „główny” , ponieważ jest on elementem nadrzędnym bieżącego elementu |
Wynik tych wyborów będzie zależał od charakteru zadania:
Składnia XPath ewoluowała i stała się bardziej kompletna. Standardowy XPath 2.0 ( cale ) , zalecenie W3C od23 stycznia 2007opisuje wspólny podzbiór języków XSLT 2.0 i XQuery 1.0, stanowiąc również znacznie bogatszy samodzielny język zapytań XML niż pierwsza wersja zawarta w XSLT 1.
XPath jest podstawowym językiem zapytań w XSLT . Określa, czy ma zastosowanie reguła szablonu (poprzez jej atrybut dopasowania ), i może być również użyty do wyodrębnienia treści z dokumentu XML przekształconego przez program XSLT.
XPath może być używany jako język zapytań w bazach danych XML , często jako podzbiór XQuery .
XPath jest używany jako język wyrażeń reguł w Schematron , a częściowo także w schemacie XML .
XPath może być używany z wiersza poleceń, tutaj z poleceniem xpath, które pochodzi z modułu Perl XML :: XPath . W tym miejscu szukamy adresów URL artykułów w kanale dystrybucyjnym Atom :
$ xpath -e '//link[@rel="alternate"]/@href' feed.atom
Inny przykład, z xfind do wyszukiwania plików (XML używany do modelowania atrybutów pliku):
$ ./find -xpath '/bin/*[@size > /bin/bash/@size]' /bin/ipv6calc /bin/rpm