Hoppa till innehåll
100% lokalt

XPath-utvärderer

Kör ett XPath 1.0-uttryck mot inklistrat XML och se varje träff, dess värde och väg.

Inmatning
Utmatning

XPath-utvärderer

Klistra in ett XML-dokument, skriv ett XPath 1.0-uttryck och det här verktyget listar varje nod som det matchar — utan att behöva skriva ett skript eller öppna en debugger för att kontrollera om en väljare faktiskt hittar det du förväntar dig. Det skapades för stunden då du tittar på ett XSLT-stilmall, en skrapningsregel eller en XQuery-väg som inte returnerar vad du förväntat, och du behöver testa uttrycket isolerat på det verkliga dokumentet.

Alternativet Resultattyp styr hur uttryckets värde läses: « Noduppsättning » listar alla matchande element, attribut, textnoder eller kommentarer; « Sträng », « Nummer » och « Boolesk » kastar hela uttrycket på samma sätt som XPath:s egna string()-, number()- och boolean()-funktioner, vilket är hur du kontrollerar en jämförelse eller ett count()-anrop isolerat. För resultat från noduppsättning växlar « Visa träffar som » mellan varje träffs textinnehål och dess fullständigt serialiserade XML, och du kan numrera träffarna eller föranstalta varje med den lösta vägen (såsom /catalog/book[2]/title) som hittade den.

Den syntax som stöds täcker den delmängd som människor faktiskt använder: alla tio standardaxlarna (child, descendant, descendant-or-self för //, parent, ancestor, self, following-sibling, preceding-sibling och attribute för @), jokertecken, positions- och booleskapredikater, unionoperatorn och vanliga funktioner — position(), last(), count(), name(), contains(), starts-with(), substring(), concat(), normalize-space() och aritmetiska och jämförelseoperatorer. Variabler, document(), key() och namnrymdsaxeln stöds inte. Dokument med namnrymder behöver att ett prefix binds till dess URI under « Namnrymdbindningar », ett prefix=URI-par per rad — eller slå på « Ignorera namnrymder » för att bara matcha efter lokalt namn, oavsett prefix.

Allt körs lokalt i din webbläsare: XML som du klistrar in och uttrycket du skriver mot det skickas aldrig någonstans, så det är säkert att testa mot verkliga API-svar, konfigurationsexporter eller produktionsloggutdrag. Ogiltigt XML och ogiltiga uttryck rapporteras med vad som misslyckades och varför, inte ett tomt resultat.

FAQ

Vilka delar av XPath 1.0 stöds?
Alla tio standardaxlar, namn- och nodtypstest (inklusive jokertecken och text()/comment()/node()), positions- och booleskapredikater, unionoperatorn (|), aritmetiska och jämförelseoperatorer och vanliga funktioner som position(), last(), count(), name(), string(), contains(), starts-with(), substring(), concat(), normalize-space() och sum(). Variabler ($x), document(), key() och namnrymdsaxeln stöds inte.
Varför matchar mitt uttryck ingenting i ett namnrymd-dokument?
Ett namntest utan prefix matchar bara element utan namnrymd — det är samma regel som verkliga XPath-processorer följer. Binda det prefix som ditt uttryck använder till dokumentets namnrymds-URI under « Namnrymdbindningar » (ett prefix=URI-par per rad), eller slå på « Ignorera namnrymder » för att matcha bara efter lokalt namn.
Vad är skillnaden mellan de fyra resultattyperna?
« Noduppsättning » listar de matchande noderna själva. « Sträng », « Nummer » och « Boolesk » kastar i stället hela uttrycket på samma sätt som XPath:s string()-, number()- och boolean()-funktioner — användbart för att direkt kontrollera ett count()-uttryck eller jämförelse utan att slå in det i ett predikat.
Vad händer med ogiltigt XML eller ett ogiltigt uttryck?
Verktyget rapporterar vilken som misslyckades och varför — en otäckt tagg eller omatchat element för XML, en oväntad token eller obunden namnrymdsprefix för uttrycket — i stället för att returnera ett tomt eller vilseledande resultat.
Uploaderas mitt XML-dokument någonstans?
Nej. Parsning och utvärdering körs helt i din webbläsare — dokumentet och uttrycket lämnar aldrig din enhet.