XPath

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

XPath (XML Path Language) je počítačový jazyk, pomocí kterého lze adresovat části XML dokumentu. Pomocí tohoto jazyka lze z XML dokumentu vybírat jednotlivé elementy a pracovat s jejich hodnotami a atributy. XPath se používá v mnoha aplikacích XML, mezi nejvýznamnější patří využití v XSLT. Jazyk XPath je standardem vydaným organizací W3C.

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. +more Každý přechod je určen pomocí tří složek (některé ovšem nemusí být uvedeny, pokud mají implicitní hodnotu): * osa (axis), * test (node test), * predikát (predicate).

Nejjednodušší zápis používá pouze položky test a má tvar např. /A/B/C, což označuje množinu elementů C, které jsou uvnitř elementu B, které jsou uvnitř elementu A, který je kořenovým elementem dokumentu. +more Tento zápis se podobá zápisu cesty k souboru v souborovém systému, nebo zápisu URL. Ve složitějších dotazech může být místo jména dítěte (tj. implicitní osy child) použit název jiné osy oddělený čtyřtečkou :: od jména, případně predikát zapsaný jako seznam podmínek v hranatých závorkách. Příkladem takového složitějšího dotazu je /A/B/following-sibling::*[1], který vybere všechny (libovolně pojmenované - specifikováno *) elementy, které jsou prvním elementem následujícím po elementu B, který je uvnitř kořenového elementu A.

Specifikace osy

Specifikace osy popisuje směr pohybu po stromové reprezentaci XML dokumentu. Je definováno celkem 13 os:

předek (tj. rodič, jeho rodič, …)
předek nebo aktuální uzel
atributlze zkráceně zapsat
dítě (bezprostřední potomek)lze zkráceně zapsat
potomek (tj. +more dítě, jeho dítě, …)
potomek nebo aktuální uzellze zkráceně zapsat
libovolný následující uzel
následující sourozenec
jmenný prostor
rodič (bezprostřední předek)lze zkráceně zapsat
libovolný předcházející uzel
předcházející sourozenec
aktuální uzellze zkráceně zapsat
.

Příklad: Zápis //a/@href vybere atribut se jménem href ve všech elementech a v celém stromě dokumentu. Zápis . +more (což je zkratka pro self::node) se nejčastěji používá v predikátech pro odkaz na právě vybraný uzel. Například h3[. ='See also'] vybere element se jménem h3 v aktuálním kontextu, jehož textový obsah je See also.

Další výrazy

Kromě výrazů popisujících cestu jsou v XPath definovány také běžnější číselné, logické a jiné výrazy, které se používají nejčastěji v rámci predikátů. Příkladem je výraz popisující cestu //zboží[@sleva >= @cena div 2], který najde všechny elementy zboží, jejichž atribut sleva má hodnotu nejméně poloviny hodnoty atributu cena. +more 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: /* * Element foo kdekoliv: //foo * Atribut edits elementu group s atributem name rovným main: group[@name="main"]/@edits

Externí odkazy

[url=https://web. archive. +moreorg/web/20121209085946/http://www. w3. org/TR/xpath/]www. w3. org/TR/xpath[/url] - Standard XPath verze 1. 0 (anglicky) * [url=http://interval. cz/clanky/zaklady-jazyka-xpath/]Základy jazyka XPath[/url] * [url=http://www. zvon. org/xxl/XPathTutorial/General_cze/examples. html]Příklady XPath[/url] * [url=http://www. kosek. cz/xml/xslt/xpath. html]XPath[/url], [url=http://www. kosek. cz/xml/xslt/vyrazy. html]příklady[/url] * [url=http://www. data2type. de/xml-xslt-xslfo/xpath/xpath-einfuehrung]XPath Tutorial[/url] * [url=https://web. archive. org/web/20100602185558/http://www. data2type. de/xml-xslt-xslfo/xslt/xsltundxpathreferenz]XSLT and XPath Reference[/url].

Kategorie:Přístup k XML datům Kategorie:Standardy W3C

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top