Sări la conținut

Evaluator XPath

Execută o expresie XPath 1.0 pe XML lipit și vezi fiecare potrivire, valoarea și calea acesteia.

Intrare
Ieșire

Evaluator XPath

Lipește un document XML, scrie o expresie XPath 1.0 și acest instrument enumeră fiecare nod pe care o potrivește — nu este nevoie să scrii un script sau să deschizi un depanator pentru a verifica dacă un selector găsește cu adevărat ceea ce ai în vedere. A fost construit pentru momentul în care te uiți la o foaie de stil XSLT, o regulă de web scraping sau o cale XQuery care nu returnează ceea ce te-ai așteptat, și trebuie să testezi expresia izolat pe documentul real.

Opțiunea tip rezultat controlează modul în care este citită valoarea expresiei: „Set de noduri” enumeră fiecare element, atribut, nod de text sau comentariu corespunzător; „Șir”, „Număr” și „Boolean” convertesc întreaga expresie în aceeași manieră în care ar face funcțiile string(), number() și boolean() ale XPath, ceea ce este modul în care verifici o comparație sau un apel count() izolat. Pentru rezultatele setului de noduri, „Afișează potrivirile ca” comută între conținutul text al fiecărei potriviri și XML-ul serializat complet, și poți numerota potrivirile sau prefața fiecare cu calea rezolvată (cum ar fi /catalog/book[2]/title) care a găsit-o.

Sintaxa suportată acoperă submulțimea pe care oamenii o folosesc de fapt: toate cele zece axe standard (child, descendant, descendant-or-self pentru //, parent, ancestor, self, following-sibling, preceding-sibling și attribute pentru @), wildcard-uri, predicate poziționare și booleene, operatorul union și funcții comune — position(), last(), count(), name(), contains(), starts-with(), substring(), concat(), normalize-space() și operatorii aritmetici și de comparație. Variabilele, document(), key() și axa namespace nu sunt suportate. Documentele cu namespace necesită legarea unui prefix la URI-ul acesteia sub „Legări de spațiu de nume”, o pereche prefix=URI pe rând — sau activează „Ignoră spațiile de nume” pentru a potrivi doar după numele local, indiferent de prefix.

Tot se execută local în browserul tău: XML-ul pe care îl lipești și expresia pe care o scrii împotriva acestuia nu sunt niciodată încărcate nicăieri, deci este sigur să testezi împotriva răspunsurilor reale ale API, exporturilor de configurare sau fragmentelor de jurnal de producție. XML-ul invalid și expresiile nevalide sunt raportate cu ceea ce a eșuat și de ce, nu cu un rezultat gol.

FAQ

Care sunt părțile XPath 1.0 suportate?
Toate cele zece axe standard, teste de nume și tip de nod (inclusiv wildcard-uri și text()/comment()/node()), predicate poziționare și booleene, operatorul union (|), operatorii aritmetici și de comparație, și funcții comune cum ar fi position(), last(), count(), name(), string(), contains(), starts-with(), substring(), concat(), normalize-space() și sum(). Variabilele ($x), document(), key() și axa namespace nu sunt suportate.
De ce expresia mea nu se potrivește cu nimic într-un document cu namespace?
Un test de nume fără prefix se potrivește doar cu elemente fără namespace — aceasta este aceeași regulă pe care o urmează procesatoarele XPath reale. Leagă prefixul pe care expresia ta îl folosește la URI-ul de spațiu de nume al documentului sub „Legări de spațiu de nume” (o pereche prefix=URI pe rând), sau activează „Ignoră spațiile de nume” pentru a potrivi doar după numele local.
Care este diferența între cele patru tipuri de rezultate?
„Set de noduri” enumeră nodurile corespunzătoare în sine. „Șir”, „Număr” și „Boolean” convertesc în schimb întreaga expresie în aceeași manieră în care ar face funcțiile string(), number() și boolean() ale XPath — util pentru a verifica direct o expresie count() sau o comparație fără a o înfășura într-un predicat.
Ce se întâmplă cu XML invalid sau o expresie nevalidă?
Instrumentul raportează care dintre ele a eșuat și de ce — o etichetă neinchisă sau element nepotrivit pentru XML, un token neașteptat sau un prefix de spațiu de nume nelegat pentru expresie — în loc să returneze un rezultat gol sau misleading.
Documentul meu XML este încărcat undeva?
Nu. Analiza și evaluarea se execută în întregime în browserul tău — documentul și expresia nu lasă niciodată dispozitivul tău.