XPath to technologia, która precyzyjnie i efektywnie określa i wyodrębnia wymagane informacje z danych o strukturze drzewa, takich jak HTML i XML.
Przegląd XPath
XPath to język używany do określania i wyodrębniania określonych elementów oraz atrybutów w drzewie dokumentów XML lub HTML. Ponieważ strony internetowe często składają się z HTML, XPath jest szeroko wykorzystywany w różnych sytuacjach, takich jak web scraping, wyszukiwanie danych czy wyszukiwanie danych XML.
Typowe użycie jest następujące:
- Ekstrakcja danych w wyszukiwarkach internetowych: XPath służy do automatycznego pobierania konkretnych danych, takich jak informacje o produktach na stronach e-commerce czy tytuły artykułów na portalach informacyjnych.
- Wyszukiwanie i przetwarzanie danych XML: W systemach biznesowych i przetwarzaniu łączy danych dane są często wymieniane w formacie XML. Dzięki użyciu XPath możesz efektywnie wydobyć niezbędne informacje z dużych ilości danych XML.
- Parsing API Responses (format XML): W przypadku korzystania z API opartych na XML, takich jak SOAP, XPath służy do analizy danych odpowiedzi. Pozwala to szybko uzyskać konkretne kody statusu i dane wyników, poprawiając dokładność integracji systemu i automatycznego przetwarzania.
Rekomendacja narzędzi
W procesie nauki i korzystania z XPath najczęściej spotykane narzędzia to:
Chrome Developer Tools: Potężne narzędzie dołączone do przeglądarki Chrome, które można wywołać, naciskając F12. W panelu "Elements" możesz szybko znaleźć elementy HTML na stronie internetowej, przejeżdżając kursorem i klikając, a kliknięciem prawym przyciskiem na element możesz bezpośrednio skopiować wyrażenie XPath, co ułatwia weryfikację i testowanie. Na przykład, analizując stronę produktu e-commerce, możesz użyć narzędzi deweloperskich Chrome, aby szybko uzyskać XPath dla nazw produktów, cen i innych elementów. Firefox Developer Tools: Również dołączone jest do przeglądarki, podobnie jak Chrome Developer Tools. Pozwala także łatwo lokalizować elementy na stronie, a także przeglądać i testować wyrażenia XPath. To dobra opcja dla deweloperów przyzwyczajonych do korzystania z przeglądarki Firefox. Narzędzia do testowania XPath online: Narzędzia online, takie jak "XPath Tester", można używać bez instalacji i można z nich korzystać poprzez otwarcie strony internetowej. Wystarczy wkleić zawartość dokumentu XML lub HTML, wpisać wyrażenie XPath i zobaczyć wyniki dopasowania w czasie rzeczywistym. To narzędzie jest szczególnie odpowiednie dla początkujących, aby szybko zacząć i wykonywać proste ćwiczenia XPath. XPath Helper Plugin: Weźmy na przykład przeglądarkę Chrome, po zainstalowaniu wtyczki XPath Helper, podczas przeglądania internetu dodaje on pływające okno do interfejsu przeglądarki, wyświetlające ścieżkę XPath aktualnego elementu przesuwania myszką, a także można edytować i testować wyrażenia XPath bezpośrednio w oknie, co znacznie zwiększa efektywność rozwoju.
Składnia XPath Abstract
Wybierz węzeł
XPath używa wyrażeń ścieżek do wyboru węzłów w dokumencie XML. Węzły wybierane są podążając ścieżką lub krokiem. Najbardziej użyteczne wyrażenia ścieżek wymieniono poniżej:
wyrażenie | opis | | nazwa węzła | Wybiera wszystkie węzły potomne tego węzła. | | / | Wybierz z węzła korzeniowego (weź węzeł potomny). | | // | Wybiera węzły w dokumencie z aktualnego węzła dopasowanego wyboru, niezależnie od ich lokalizacji (przyjmuj węzły potomne). | | . | Wybierz aktualny węzeł. | | .. | Wybierz węzeł nadrzędny aktualnego węzła. | | @ | Wybierz atrybut. |
W poniższej tabeli wymieniliśmy niektóre wyrażenia ścieżek wraz z wynikami wyrażeń:
Wyrażenia ścieżek | wynik | | księgarnia | Wybierz wszystkie węzły o nazwie księgarnia. | | /bookstore | Wybierz księgarnię z elementami korzeniowymi. Uwaga: Jeśli ścieżka zaczyna się od ukośnika do przodu ( / ), to ta ścieżka zawsze reprezentuje absolutną ścieżkę do elementu! | | Księgarnia/książka | Wybiera wszystkie elementy książki, które są dziećmi księgarni. | | //book | Wybiera wszystkie podelementy książki, niezależnie od ich pozycji w dokumencie. | | Księgarnia//książka | Wybierz wszystkie elementy książki, które są potomkami księgarni, niezależnie od tego, gdzie znajdują się pod księgarnią. | | @lang | Wybierz wszystkie właściwości o nazwie lang. |
Predykaty
Predykat służy do znalezienia konkretnego węzła lub węzła zawierającego określoną wartość. Predykat jest osadzony w nawiasach kwadratowych. W poniższej tabeli wymieniamy niektóre wyrażenia ścieżkowe z predykatami oraz wyniki wyrażeń:
Wyrażenia ścieżek | wynik | | /bookstore/book[1] | Wybierz pierwszy element książki, który jest częścią dzieckiego elementu księgarni. | | /bookstore/book[last()] | Wybiera ostatni element książki, który jest częścią podelementu księgarni. | | /bookstore/book[last()-1] | Wybiera przedostatni element książki, który należy do dziecięcego segmentu księgarni. | | /bookstore/book[position()<3] | Wybierz pierwsze dwa elementy książki, które są elementami potomnymi części księgarni. | | Tytuł[@lang] | Wybiera wszystkie elementy tytułu, które mają własność o nazwie lang. | | tytuł[@lang='eng'] | Wybiera wszystkie elementy tytułowe, które mają atrybut lang z wartością eng. | | /bookstore/book[price>35.00] | Wybiera wszystkie elementy książki z księgarni, a wartość elementu ceny musi przekraczać 35,00. | | /bookstore/book[price>35.00]//title | Wybiera wszystkie elementy tytułu elementu książki w elemencie księgarni, a wartość elementu ceny musi przekraczać 35,00. |
Wybierz nieznany węzeł
Karty uniwersalne XPath mogą być używane do wykrywania nieznanych elementów XML.
Symbol wieloznaczny | opis | | * | Pasuje do dowolnego węzła elementu. | | @* | Pasuje do dowolnego węzła atrybutu. | | node() | Pasuje do dowolnego typu węzła. |
W poniższej tabeli wymieniamy niektóre wyrażenia ścieżek oraz wyniki tych wyrażeń:
Wyrażenia ścieżek | wynik | | /bookstore/* | Wybiera wszystkie elementy dzieckie z księgarni. | | //* | Wybiera wszystkie elementy z dokumentu. | | tytuł[@*] | Wybiera wszystkie elementy tytułu z atrybutami. |
Wybierz kilka ścieżek
Używając "|" w wyrażeniu ścieżki operatorzy, możecie wybrać kilka ścieżek.
W poniższej tabeli wymieniamy niektóre wyrażenia ścieżek oraz wyniki tych wyrażeń:
Wyrażenia ścieżek | wynik | | //book/title | //book/price | Wybiera wszystkie elementy tytułu i ceny z elementu książki. | | tytuł | cena | Wybierz wszystkie elementy tytułu i ceny w dokumencie. | | /bookstore/book/title | //price | Wybiera wszystkie elementy tytułu książki, które należą do części księgarni, oraz wszystkie elementy ceny w dokumencie. |
Funkcja XPath
Poniżej znajduje się skomentowana lista specyficznych dla XPath dodatków do XPath przez podstawowe funkcje XPath oraz XSLT, w tym opisy, składnię, listy parametrów, typy wyników oraz źródła w odpowiadających rekomendacjach W3C.
- boolean()
- ceiling()
- choose()
- concat()
- zawiera()
- count()
- current() specyficzny dla XSLT
- document() specyficzny dla XSLT
- element-available()
- false()
- floor()
- format-number() specyficzny dla XSLT
- function-available()
- generate-id() specyficzny dla XSLT
- id()
- key() specyficzny dla XSLT
- lang()
- last()
- local-name()
- name()
- namespace-uri()
- normalize-space()
- not()
- number()
- position()
- round()
- zaczyna-od()
- string()
- string-length()
- substring()
- substring-after()
- substring-before()
- sum()
- system-property() specyficzny dla XSLT
- translate()
- true()
- unparsed-entity-url() specyficzny dla XSLT
Testy praktyczne
Otwórz Chrome i pobierz zawartość tekstu wszystkich linków do zakładki A za pomocą następującego polecenia:
Jak pokazano poniżej:
Odniesienie:Logowanie do linku jest widoczne. |