Testování XPath v XML a HTML dokumentech
XPath (XML Path Language) slouží jako standardizovaný způsob pro navigaci a výběr konkrétních částí v dokumentech XML a HTML. Tento nástroj umožňuje zadat zdrojový text a následně nad ním spouštět dotazy, které vyhledají odpovídající uzly, atributy nebo textové hodnoty.
Při práci s dokumenty je klíčové zvolit správný režim zpracování. Nástroj nabízí přepínání mezi dvěma módy:
- XML: Striktně dodržuje pravidla jmenných prostorů a syntaxe XML.
- HTML: Je benevolentnější k syntaktickým odchylkám a umožňuje snadné vyhledávání běžných elementů.
Zpracování zadaných dat probíhá lokálně. Vaše XML, HTML a XPath se testují přímo v prohlížeči a na servery BroBroGo se nic nenahrává.
Vstupní parametry a limity nástroje
Pro správné vyhodnocení dotazu vyžaduje nástroj definování tří základních parametrů, které podléhají specifickým limitům pro zajištění stability běhu v prohlížeči:
| Vstupní pole | Popis a nastavení | Maximální délka |
|---|---|---|
| Vstupní XML / HTML | Zdrojový textový obsah, ve kterém chcete vyhledávat. | 500 000 znaků |
| Výraz XPath | Samotný dotaz pro výběr uzlů. | 4 000 znaků |
| Typ vstupu | Volba režimu zpracování: XML nebo HTML. | Není omezeno |
Pokud velikost vloženého dokumentu překročí stanovenou mez, nástroj vypíše chybové hlášení: „Tento dokument je pro testování v tomto nástroji příliš velký. Zkuste menší vzorek.“. V případě překročení limitu pro délku dotazu se zobrazí upozornění: „Tento výraz XPath je pro testování v tomto nástroji příliš dlouhý.“.
Rozdíly mezi režimy XML a HTML
Volba správného režimu přímo ovlivňuje, jakým způsobem parser interpretuje strukturu dokumentu a jak na ni aplikuje zadaný výraz XPath.
XML mode a správa jmenných prostorů
V režimu XML se striktně vyžaduje validní struktura a plně se respektují jmenné prostory (namespaces). Prefixy jmenných prostorů deklarované ve vašem XML lze použít i v XPath, například //x:item. U výchozích jmenných prostorů se zápis //item rovněž řídí deklarací dokumentu. Pokud dokument obsahuje chyby v syntaxi, které znemožňují jeho načtení, nástroj zobrazí chybu: „Tento dokument se nepodařilo analyzovat.“.
HTML mode pro webové dokumenty
Při analýze HTML je parser tolerantní k chybějícím uzavíracím značkám či jiným drobným prohřeškům proti validitě. Režim HTML je benevolentnější a umožňuje, aby jednoduché cesty jako //a odpovídaly běžným tagům. Tento režim je ideální pro přípravu podkladů pro web scraping nebo migraci dat. Je však nutné mít na paměti, že nástroj nereprezentuje v reálném čase strukturu, vykreslené DOM nebo síťové požadavky živých online stránek. Testování probíhá výhradně nad statickým textem, který do nástroje sami vložíte.
Interpretace výsledků a ladění výrazů
Po spuštění vyhodnocení se pod vstupními poli zobrazí statistiky a detailní přehled nalezených shod. Nástroj poskytuje tyto výstupy:
- Znaky: Celkový počet znaků ve vstupním dokumentu.
- Výsledky: Počet zobrazených výsledků.
- Detail: U každého odpovídajícího uzlu se zobrazí jeho typ, název, přesná cesta a náhled hodnoty.
- Kopírovat výsledek: Tlačítko u každé jednotlivé shody, které umožňuje rychle zkopírovat její hodnotu do schránky.
Omezení počtu výsledků a ochrana proti zamrznutí
Pokud výraz XPath odpovídá velkému množství uzlů, nástroj z důvodu zachování rychlosti vykreslování omezí výpis. Když je nalezeno více než 200 výsledků, zobrazí se upozornění „Zobrazuje se prvních {max}.“ a vypíše se pouze prvních 200 položek.
Proces vyhodnocování je chráněn také časovým limitem. Nástroj zastaví zpracování po 2 sekundách, aby stránka zůstala responzivní. Pokud k tomu dojde, zobrazí se chybová zpráva: „Vyhodnocení tohoto XPath trvalo příliš dlouho. Upřesněte výraz nebo použijte menší vzorek dat.“.
Řešení chybových stavů
Během testování se můžete setkat s několika specifickými chybovými hlášeními, která indikují problém ve struktuře dokumentu nebo v samotném zápisu XPath:
- „Tento výraz XPath není platný.“: Zadaný dotaz porušuje syntaktická pravidla jazyka XPath.
- „Nepodařilo se vyhodnotit tento XPath.“: Výraz je syntakticky v pořádku, ale nelze jej nad daným dokumentem spustit.
- „Žádné výsledky.“: Výraz je validní, ale v dokumentu se nenachází žádný uzel, který by odpovídal zadaným kritériím.
Pro efektivní vyhledávání se doporučuje psát specifické cesty namísto obecných dotazů typu //*, které zatěžují procesor vyhodnocováním celého stromu dokumentu.
Často kladené otázky
Mohu testovat XPath na HTML i na XML?
Ano. Režim XML striktně dodržuje pravidla jmenných prostorů XML. Režim HTML je benevolentnější a umožňuje, aby jednoduché cesty jako //a odpovídaly běžným tagům.
Jak fungují jmenné prostory XML?
Prefixy jmenných prostorů deklarované ve vašem XML lze použít i v XPath, například //x:item. U výchozích jmenných prostorů se zápis //item rovněž řídí deklarací dokumentu.
Proč může u dotazu dojít k vypršení časového limitu?
Vyhodnocení velmi velkých dokumentů nebo širokých výrazů může být náročné. Nástroj zastaví zpracování po 2 sekundách, aby stránka zůstala responzivní; upřesněte cestu nebo zkuste menší vzorek dat.
Jsou moje vkládaná data v bezpečí?
Vaše XML, HTML a XPath se testují přímo v prohlížeči. Na servery BroBroGo se nic nenahrává, zpracování probíhá lokálně na vašem zařízení.