XPath: Porovnání verzí

Smazaný obsah Přidaný obsah
YurikBot (diskuse | příspěvky)
m robot přidal: it:Xpath
m úprava ext. odkazů; <code> pro úseky kódu, malá opravička
Řádek 3:
==Syntaxe jazyka==
Základní součástí jazyka je ''path expression'', „výraz popisující cestu“. Taková cesta se zapisuje jako posloupnost přechodů mezi jednotlivými sadami uzlů, oddělených lomítky. Každý přechod je určen pomocí tří složek (některé ovšem nemusí být uvedeny, pokud mají implicitní hodnotu):
* Osaosa (''axis''),
* test (''node test''),
* predikát (''predicate'').
 
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ě [[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> (potomek, 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.
 
== Příklady ==
Příklady několika málo XPath výrazů:
* Kořenový element: <code>/*</code>
* Element ''<code>foo''</code> kdekoliv: <code>//foo</code>
* Obsah atributu ''<code>edits''</code> elementu ''<code>group''</code> s atributem ''<code>name''</code> rovným ''<code>main''</code>: <code>group[@name="main"]/edits</code>
 
==Externí odkazy==
*[http://interval.cz/clanky/zaklady-jazyka-xpath/ Základy jazyka XPath] (česky)
*[http://www.zvon.org/xxl/XPathTutorial/General_cze/examples.html Příklady XPath na ZVON.org]
*[http://www.w3.org/TR/xpath www.w3.org/TR/xpath] – Standard XPath verze 1.0 (anglicky)
*[http://interval.cz/clanky/zaklady-jazyka-xpath/ Základy jazyka XPath] (česky)
*[http://www.zvon.org/xxl/XPathTutorial/General_cze/examples.html Příklady XPath na ZVON.org]
 
[[Kategorie:Standardy W3C]]
[[Kategorie:Dotazovací jazyky]]
[[Kategorie:PočítačovéStandardy jazykyW3C]]
 
[[da:XPath]]