XPath: Porovnání verzí

Smazaný obsah Přidaný obsah
Porthos (diskuse | příspěvky)
m Robot opravil přesměrování na XML - Změněn(y) odkaz(y) na Extensible Markup Language
Bez shrnutí editace
Řádek 9:
Nejjednodušší zápis používá pouze položky test a má tvar např. <code>/A/B/C</code>, přičemž označuje množinu elementů <code>C</code>, které jsou uvnitř elementů <code>B</code>, které jsou uvnitř elementu <code>A</code>, který je kořenovým elementem dokumentu. Takový zápis je podobný zápisu cesty k souboru v souborovém systému, případně [[Uniform Resource Locator|URL]]. U složitějších dotazů se místo implicitní osy <code>child</code> (potomek) může zapsat jiná osa, oddělená čtyřtečkou, případně predikáty, uvedené jako seznam podmínek v hranatých závorkách. Příkladem takového složitějšího dotazu je <code>/A/B/following-sibling::*[1]</code>, který vybere všechny (libovolně pojmenované) elementy, které jsou prvním elementem následujícím po elementu <code>B</code>, který je uvnitř kořenového elementu <code>A</code>.
 
Specifikace osy popisuje směr pohybu po [[strom (informatika)|stromové]] reprezentaci XML dokumentu. Je definováno celkem 13 os, mezi nimi například <code>child</code> (potomekdítě, implicitní), <code>descendant</code> (potomek), <code>parent</code> (rodič), <code>ancestor</code> (předek), <code>attribute</code> (atribut) apod. Pro některé často používané osy existuje zkratka zápisu, takže např. místo <code>attribute::id</code> lze psát <code>@id</code>.
 
Kromě výrazů popisujících cestu jsou v XPath definovány také běžnější číselné, logické ad. výrazy, které se používají nejčastěji v rámci predikátů. Příkladem je výraz popisující cestu <code>//zboží[@sleva >= @cena div 2]</code>, který najde všechny elementy <code>zboží</code>, jejichž atribut <code>sleva</code> má hodnotu nejméně poloviny hodnoty atributu <code>cena</code>. V podobných výrazech lze používat operátory a funkce ze standardní knihovny.