Jak przetestować wyrażenie XPath
- Wklej swój XML, otwórz plik lub użyj przykładowego katalogu produktów.
- Wpisz wyrażenie XPath lub kliknij jeden z przykładów. Wynik aktualizuje się podczas pisania, a Enter oblicza go natychmiast.
- Odczytaj wynik: liczbę pasujących węzłów wraz z ich typem i zawartością albo liczbę, ciąg znaków lub wartość logiczną zwracaną przez wyrażenie.
Ściągawka XPath
| Wyrażenie | Wybiera |
|---|---|
/catalog | Element główny catalog |
//product | Każdy element product na dowolnej głębokości |
/catalog/product/name | Element name każdego produktu, krok po kroku od korzenia dokumentu |
//product/@id | Atrybut id każdego produktu |
//product[@category='books'] | Produkty, których atrybut category ma wartość books |
//product[price > 20] | Produkty z ceną powyżej 20, porównywaną jako liczba |
//product[contains(name, 'USB')] | Produkty, których nazwa zawiera „USB” (z rozróżnianiem wielkości liter) |
//product[not(tags)] | Produkty bez elementu podrzędnego tags |
(//product)[1] | Pierwszy produkt w dokumencie |
//product[1] | Pierwszy produkt w każdym elemencie nadrzędnym |
//product[last()] | Ostatni produkt w każdym elemencie nadrzędnym |
//name/text() | Węzły tekstowe wewnątrz name |
//price/.. | Element nadrzędny każdego elementu price |
//*[local-name()='product'] | Elementy product w dowolnej przestrzeni nazw |
count(//product) | Liczba produktów |
sum(//price) | Suma wszystkich cen |
string(//product[1]/name) | Nazwa pierwszego produktu jako ciąg znaków |
Przestrzenie nazw w XPath
XPath 1.0 nie ma domyślnej przestrzeni nazw. W dokumencie z xmlns="…", takim jak mapa witryny czy faktura NF-e, wyrażenie //url nic nie znajduje, ponieważ elementy należą do tej przestrzeni nazw. Dlatego tester przypisuje domyślną przestrzeń nazw do prefiksu x: (lub d:, jeśli x jest już zajęty), więc działa //x:url/x:loc. Prefiksów zadeklarowanych w dokumencie, takich jak cfdi: w fakturze CFDI, można używać bez zmian. W narzędziach bez konfiguracji przestrzeni nazw wszędzie działa //*[local-name()='url'].
Najczęściej zadawane pytania
Którą wersję XPath obsługuje tester?
XPath 1.0 – wersję wbudowaną w każdą przeglądarkę i większość bibliotek XML. Funkcje z XPath 2.0 i nowszych, takie jak matches(), lower-case() czy string-join(), nie są dostępne.
Dlaczego moje wyrażenie XPath nic nie zwraca?
Najczęstsze przyczyny to domyślna przestrzeń nazw (użyj prefiksu x: podanego pod przykładami), inna wielkość liter – XPath rozróżnia wielkie i małe litery – oraz pozycje, które zaczynają się od 1, a nie od 0.
Ile wyników jest wyświetlanych?
Zliczane są wszystkie dopasowania, a pierwszych 500 jest wyświetlanych wraz z typem węzła i zawartością.
Czy mój XML jest przesyłany na serwer?
Nie. XML jest parsowany i odpytywany w Twojej przeglądarce. Tylko plik wczytywany z adresu URL jest pobierany przez nasz serwer.