140 likes | 303 Views
Technol ógie XML. XPath (XML Path Language) September , 2011. Vznik XPath. Je to „pomocná“ technológia cieľom bola podpora technológií XSLT, XPointer, XQuery Poskytuje funkčnosť, zdieľanú podporovanými technológiami Umožňuje: adresovanie v rámci XML dokumentu
E N D
Technológie XML XPath (XML Path Language) September, 2011 Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Vznik XPath • Je to „pomocná“ technológia • cieľom bola podpora technológií XSLT, XPointer, XQuery • Poskytuje funkčnosť, zdieľanú podporovanými technológiami • Umožňuje: • adresovanie v rámci XML dokumentu • prostriedky pre manipuláciu s reťazcami, číslami a booleovskými hodnotami Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Vlastnosti XPath • Kompaktná syntax (nie je XML aplikáciou) • je vyžadované jeho použitím (napr. v hodnotách atribútov) • Pracuje na logickej (hierarchickej) štruktúre XML dokumentu • Jeho aplikácia má charakter výrazu, výsledkom vyhodnotenia ktorého je • množina uzlov vyhovujúca výrazu • booleovská hodnota reprezentujúca platnosť výrazu • hodnota reprezentujúca hodnotu výrazu v kontexte dokumentu Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Stav XPath • Spravovaný W3C (http://www.w3.org) • XML Path Language 1.0 (štandard) • W3C working draft – júl 1999 • W3C recommendation – november 1999 • XML Path Language 2.0 (štandard v 2.edícii) • W3C working draft – júl 2004 • W3C recommendation – január 2007 • W3C recommendation – 2.edícia – december 2010 • XML Path Language 3.0 • W3C working draft – jún 2011 Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Knižnica – značkovaný dokument <kniznica> ... <kniha typ="rozpravka" jazyk="slovensky" kolekcia="ano"> <autor>Pavol Dobšinský</autor> <nazov>Slovenské rozprávky</nazov> <rok>1994</rok> <obsah> <cast>Slncový kôň</cast> <cast>O dvanástich mesiačikoch</cast> ... </obsah> </kniha> ... </kniznica> Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Knižnica – logická štruktúra / kniznica ... ... kniha typ jazyk kolekcia obsah autor nazov rok cast cast ... text text text text text Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
XPath výraz • Výraz má tvar //ucitel/uvazok[@forma="prednaska"]/parent::*/meno • cesta v logickej štruktúre dokumentu • obohatená o podmienky, logické spojky, volanie funkcií a zmeny smeru • Kombinovaný výraz: výraz|výraz • Vyhodnotenie sa realizuje v určitom kontexte, ktorým môže byť • koreň dokumentu reprezentujúci celý dokument • nejaký uzol logickej štruktúry dokumentu (aktuálny uzol) • výraz začína znakom "/" (koreň) alebo iným znakom (aktuálny uzol) Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Adresovanie elementov / • kniha • /kniha • /kniznica • //kniha • //kniha/obsah/cast • //kniha//cast • //kniha/*/cast • //obsah/* • * • //* kniznica ... ... kniha obsah autor nazov rok cast cast ... text text text text text Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Adresovanie atribútov • @jazyk • @* • /kniznica/@* • //kniha/@kolekcia • //kniha/@* • //*/@jazyk / kniznica ... ... kniha typ jazyk kolekcia Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Adresovanie textu / • //kniha/text() • //kniha/nazov/text() • //kniha/text() kniznica ... ... kniha text text text obsah text text autor nazov rok cast cast ... text text text text text Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Podmienky – výskyt a hodnota / • //*[@jazyk] • //*[@*] • //kniha[@jazyk="slovensky"] • //kniha[rok="2010"]/nazov • //kniha[@jazyk="slovensky" and rok="2010"] • //kniha[not(rok="2010")] • //kniha[rok>"2000"] kniznica ... kniha obsah jazyk rok cast cast ... text text text Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Podmienky – pozícia / • //kniha//cast[1] • //kniha//cast[last()] • //kniha//cast[position() > 2] • //kniha/@*[2] • //kniha[rok="2011"][1] • //kniha[1][rok="2011"] kniznica ... kniha obsah typ jazyk kolekcia rok cast cast ... cast text text text text Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Podmienky – funkcie • //kniha[@typ="rozpravka"]//cast/text()[starts-with(.,"O dvanástich")] • //kniha[@typ="rozpravka"]//text()[starts-with(.,"O dvanástich")] • //kniha/obsah/cast[position() = floor(last() div 2 + 0.5)] • //kniha/autor[contains(text(),"Pavol"] • //kniha/autor/text()[contains(.,"Pavol"] • //kniha[count(obsah/cast) > 10] • //*[string-length(name()) > 5] • //*[starts-with(name(),"kni"] • Referencia: http://www.w3schools.com/xpath/xpath_functions.asp / kniznica kniha ... obsah typ autor nazov cast cast ... text text text text Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach
Smery pohybu / • /child::kniznica/child::kniha • /kniznica/kniha • /descendant::kniha/autor • //kniha/autor • //autor[contains(text(),"Dobšinský"] /parent::*/@jazyk • //autor[contains(text(),"Dobšinský"] /../@jazyk/text() • //cast[contains(text(),"O dvanástich"]/preceding-sibling::cast • //cast[contains(text(),"O dvanástich"]/ancestor::*/autor kniznica ... kniha jazyk autor obsah text cast cast ... text text Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach