XPath a XQuery tester
Vyhodnoť XPath nebo XQuery výraz nad vlastním XML a hned uvidíš vybrané uzly a hodnoty. Na výběr je XPath 1.0 (stejný jako document.evaluate v prohlížeči), XPath 3.1, XQuery 3.1, XQuery Update 3.1 a experimentální verze 4.0.
Anglicky XPath tester.
Co je XPath?
XPath je jazyk pro výběr částí XML dokumentu. Cesta se skládá z názvů prvků oddělených lomítkem, například /katalog/kniha/nazev.
Dvě lomítka // hledají prvek kdekoli v dokumentu, hranaté závorky filtrují ([@id="k1"] podle atributu, [1] podle pořadí) a @ vybírá atribut.
Načti ukázková data nebo vlož vlastní XML — návrhy níže se vytvoří přímo z tvého dokumentu a můžeš také kliknout na uzel ve stromu.
Proměnné a XQuery moduly
$cena. Pole se předá jako XPath pole (array:size($seznam)).ex:dvakrat(21).Tahák XPath
Základy
/prvekCesta od kořene dokumentu./katalog/kniha//prvekPrvek kdekoli v dokumentu.//nazev*Jakýkoli prvek./katalog/kniha[1]/*text()Text uvnitř prvku.//nazev/text()Atributy
@atributHodnota atributu.//kniha/@id[@atribut="hodnota"]Prvek s daným atributem.//kniha[@id='k2']//@atributAtribut kdekoli v dokumentu.//cena/@menaPozice
[1]První prvek (XPath počítá od jedné).//kniha[1][last()]Poslední prvek.//kniha[last()][position() < 3]Prvky podle pozice.//kniha[position() < 3]Filtry
[podprvek > číslo]Podmínka na hodnotu podprvku.//kniha[cena > 100]/nazev[contains(x, "text")]Obsahuje text.//kniha[contains(autor, 'Karel')][starts-with(x, "text")]Začíná textem.//kniha[starts-with(nazev, 'R')][a and b]Spojení podmínek.//kniha[@jazyk='cs' and cena > 150]Funkce
count(…)Počet nalezených uzlů.count(//kniha)sum(…)Součet čísel.sum(//cena[@mena='CZK'])string(…)Text uzlu.string(//kniha[1]/nazev)Osy
parent::Rodič uzlu.//nazev/parent::knihafollowing-sibling::Sourozenci za uzlem.//kniha[1]/following-sibling::knihaancestor::Všichni předci uzlu.//autor/ancestor::katalogXPath 3.1 navíc
=> funkce()Řetězení: výsledek se předá další funkci.//nazev/string() => string-join(', ')for … returnCyklus přímo ve výrazu.for $k in //kniha return $k/nazev/string()XPath 3.1 (knihovna fontoxpath): sekvence, for/let/if, mapy map{…} a pole […], operátory => a !, funkce jako string-join, parse-json, serialize. Prefixy jmenných prostorů se berou z dokumentu, nepředponovaná jména odpovídají výchozímu xmlns.
Jak použít: XPath tester
Tester se hodí na ladění výrazů pro XSLT, XSD, Selenium nebo vlastní kód. Verzi jazyka vyber podle prostředí, kde bude výraz běžet: prohlížeče a mnoho knihoven umí jen XPath 1.0.
- Vlož XML do pole
Vstup (XML), nebo klikni naNačíst ukázková data. - V poli
Jazykvyber verzi XPath nebo XQuery. - Napiš výraz a klikni na
Vyhodnotit. - U XQuery Update se upravený dokument zobrazí zvlášť a tlačítkem
Použít jako vstups ním pokračuješ.
Časté chyby a tipy
- Prázdný výsledek u dokumentu s xmlns
- Element ve výchozím jmenném prostoru výraz
//entrynenajde. Použij prefix navázaný na jmenný prostor, v XPath 3.1 zápis*:entryneboQ{…}entry. - Funkce z novějších verzí
matches(),replace()nebostring-join()existují až od XPath 2.0. V režimu XPath 1.0 skončí chybou.- Predikát a závorky
//kniha[1]vybere první knihu v každém rodiči,(//kniha)[1]první knihu v celém dokumentu.
Nástroj je zdarma a běží celý v tvém prohlížeči — vložená data se nikam neodesílají ani neukládají.