Skip to main content
CheckTown
Dev Tools

XPath Tester: odpytywanie dokumentow XML za pomoca XPath

Opublikowano 6 min czytania
W tym artykule

Czym jest XPath?

XPath (XML Path Language) to standardowy jezyk zapytan W3C do wybierania wezlow z dokumentow XML. Wykorzystuje skladnie podobna do sciezek do nawigowania po hierarchicznej strukturze drzewa XML, wybierajac elementy, atrybuty i wezly tekstowe na podstawie ich pozycji, nazwy lub wartosci.

XPath nie jest samodzielna technologia -- jest osadzony w innych standardach takich jak XSLT, XQuery i API DOM. Wszystkie nowoczesne przegladarki obsluguja XPath do odpytywania dokumentow HTML, a narzedzia takie jak Selenium, Scrapy i lxml intensywnie wykorzystuja wyrazenia XPath do web scrapingu i automatycznego testowania.

Jak dzialaja zapytania XPath

Wyrazenie XPath nawiguje po drzewie dokumentu uzywajac osi (kierunkow), testow wezlow (filtrow) i predykatow (warunkow). Zrozumienie tych trzech koncepcji pozwala skonstruowac dowolne zapytanie.

  • Osie i sciezki -- / wybiera od korzenia, // wybiera potomkow wszedzie, .. przechodzi do rodzica, a nazwane osie jak following-sibling:: nawiguja wzgledem biezacego wezla
  • Predykaty i filtry -- nawiasy kwadratowe [] dodaja warunki: //book[price>30] wybiera ksiazki z cena powyzej 30, a //div[@class='main'] wybiera divy z konkretnym atrybutem klasy
  • Funkcje i operatory -- XPath dostarcza wbudowane funkcje jak contains(), starts-with(), normalize-space() i count() do manipulacji lancuchami, porownywania i zliczania wezlow

Wypróbuj za darmo — bez rejestracji

Przetestuj zapytanie XPath →

Kiedy uzywac XPath

XPath jest niezbedny, gdy trzeba programistycznie wyodrebniac konkretne dane z dokumentow XML lub HTML.

  • Web scraping -- wyodrebniaj ceny produktow, tytuly artykulow lub linki ze stron internetowych uzywajac wyrazen XPath w narzediach takich jak Scrapy, Puppeteer lub konsolach deweloperskich przegladarek
  • Konfiguracja XML -- odpytuj i waliduj zlozone pliki konfiguracyjne jak Maven pom.xml, manifesty Android czy konteksty Spring XML, aby znalezc konkretne ustawienia lub zaleznosci
  • Transformacje XSLT -- wybieraj wezly do transformacji w arkuszach stylow XSLT, ktore w calosci opieraja sie na wyrazeniach XPath do dopasowywania i przetwarzania elementow XML w rozne formaty wyjsciowe

Czesto zadawane pytania

Kiedy uzywac XPath zamiast selektorow CSS?

Selektory CSS sa prostsze i szybsze do podstawowego wybierania elementow po tagu, klasie lub ID. Wybierz XPath, gdy musisz wybierac po zawartosci tekstowej (//a[contains(text(),'Zaloguj')]), nawigowac w gore do wezlow nadrzednych, uzywac zlozonych predykatow lub pracowac z dokumentami XML (nie HTML). XPath jest tez wymagany w kontekstach XSLT i XQuery.

Co sie zmienilo miedzy XPath 1.0 a 2.0?

XPath 2.0 dodal bogatszy system typow (daty, sekwencje, wyrazenia regularne), wyrazenia warunkowe (if/then/else), wyrazenia kwantyfikowane (some/every) i wyrazenia zakresow. Jednak wiekszosc przegladarek i narzedzi do scrapingu obsluguje tylko XPath 1.0. Uzywaj funkcji XPath 2.0 w narzediach serwerowych jak Saxon lub pracujac z XSLT 2.0.

Jak obslugiwac przestrzenie nazw XML w XPath?

Elementy z przestrzeniami nazw wymagaja mapowania prefiksow. W wiekszosci API rejestrujesz prefiks przestrzeni nazw (np. ns='http://example.com'), a nastepnie odpytujesz uzywajac tego prefiksu: //ns:book/ns:title. Bez zarejestrowania przestrzeni nazw //book nie dopasuje elementow w przestrzeni nazw, nawet jesli lokalna nazwa to 'book'. Niektore narzedzia obsluguja local-name() jako obejscie: //*[local-name()='book'].

Powiązane narzędzia