XPath

XPath (XML Path Language) je samostatný standard W3C, který se používá v několika dalších jazycích včetně XSLT. V XPathu lze zapisovat jednoduché výrazy, které vybírají části XML dokumentu. XML dokument je přitom chápán jako stromová struktura, kde jsou jednotlivé elementy, atributy a text chápány jako uzly (viz obrázek 3).

Obrázek 3. Stromová reprezentace XML dokumentu

Výrazy v XPath jsou podobné zápisu cest ve struktuře adresářů. Kdybychom například chtěli vybrat všechny položky faktury, použijeme XPath výraz /faktura/polozka. Lomítko přitom odděluje jednu úroveň ve stromu. Znamená to, že položka musí být dítětem faktury. Pokud nám na hloubce vnoření nezáleží, použijeme dvě lomítka bezprostředně za sebou – hledají se pak všichni potomci v libovolné úrovni stromu.

Podobně jako v adresářové struktuře, můžeme se i zde odvolávat na aktuální uzel stromu pomocí tečky a přejít na nadřazenou úroveň pomocí dvou teček.

Pokud se chceme ve výrazu odkázat na atribut, napíšeme před jeho jméno @. Výraz //@měna vybere všechny atributy měna kdekoliv v dokumentu.

Za výraz lze do hranatých závorek zapisovat podmínku, která výběr zúží. Pokud jako podmínku zapíšeme číslo, vybere se element s daným pořadím. Například /faktura/polozka[1] vybere první položku faktury. Poslední položku bychom vybrali s využitím speciální funkce last()/faktura/polozka[last()]. Vše lze samozřejmě navzájem kombinovat. Pokud vás zajímají pouze položky, kde je cena uvedena v dolarech, proč nepoužít třeba tento výraz //polozka[cena/@mena='USD'].

Možnosti XPath jsou samozřejmě mnohem větší, ale prostor článku nám neumožňuje se jimi zabývat podrobně. K dispozici jsou funkce pro základní výpočty, pro práci s řetězci a samozřejmě i logické spojky.

© Jiří Kosek 2000-2001