140 likes | 297 Views
Technol ógie XML Prednáška č. 7. XPath. Pre čo dotazovať XML?. Formáty pre zápis „ dotazov“ potrebujeme pretože: potrebujeme extrahovať časti XML dokumentu, potrebujeme transformovať informácie do inej formy, potrebujeme prepojiť časti jedného/viacerých XML.
E N D
Prečo dotazovať XML? • Formáty pre zápis „dotazov“ potrebujeme pretože: • potrebujeme extrahovať časti XML dokumentu, • potrebujeme transformovať informácie do inej formy, • potrebujeme prepojiť časti jedného/viacerých XML. • Dotaz nám poskytuje možnosť získať konkrétny údaj, ktorý je špecifikovaný polohou v štruktúre.
XML dotazovacie jazyky • XPath • Základný dotazovací jazyk. • Veľmi obmedzená selekcia operátorov. • Veľmi často používaný (XSLT, Schematron) • XQuery • Nový a elegantný jazyk W3C. • Vcelku intuitívny, založený na SQL. • SQL/XML • Snaha prepojiť SQL a XML.
XML PathLanguage = XPath • XPath • XPath nazerá na XML dokument ako na strom • Koreňový uzol je abstraktná entita a nekorešponduje zo žiadnym z elementov z XML, • Interné uzly sú prezentované elementmi, • Listové uzly sú buď: • Atribúty • Text • Komentáre
Terminológia • Parent/Rodič priamonadradený uzol v hierarchii. • Child/Dieťa priamo podriadený uzol v hierarchii. • Ancestor/Predok nadriadený uzol, ľubovoľne vzdialený. • Descendant/Potomok podriadený uzol, ľubovoľne vzdialený.
Základy XPath • Absolutná cesta k uzlu v strome s operátorom „/“: • Napr. Students/Student/ • Relatívna cesta (operátor „//“): • Napr. //Student • Označenie atribút „@“ • /Student/@id • Operátor „*“ • zhodujesa s ľubovoľným uzlom
ZákladyXPath • text() = text, ktorý element obsahuje. • comment() = text komentára. • name() = meno súčasného elementu. • count() = spočíta počet špecifikovaných elementov. • sum() = spočíta hodnoty v špecifikovaných elementoch. • contains() = zisťuje či sa podreťazec nachádza v texte elelemntu/atribútu.
Základy XPath • Zápis podmienok: • Pomocou predikátu ďalej špecifikujeme dotazované elementy. • //Student[count(//*) > 3] • Podmienkymôžeme združovať pomocou operátorov and a or. • Predikátom môže byť: • Výraz • Funkcia • Niekoľko Xpath výrazov môže byť skombinovaných pomocou | • //Student | //Teacher
Neskrátená syntax • ancestor – vyberie všetkých predkov vzhľadom na aktuálny uzol. (//ancestor::Student) • descendant - //Student[count(descendant::*)>2] • Berú do úvahy iba priamych predkov/potomkov: • parent • Child • following-sibling – vyberá nasledujúce elementy, ktoré sú hirarchicky rovnako hlboko. • self – vyberá aktuálny uzol
//kniha[contains(vydavatel,"Ik")] <?xml version="1.0" encoding="iso-8859-2"?> <kniznica> <kniha cielova-skupina="deti" jazyk="slovensky" typ="rozpravka" kolekcia="ano"> <autor><meno>Pavol Dobsinsky</meno> </autor> <nazov>Slovenskerozpravky</nazov> <vydanie>1994</vydanie> <vydavatel>Ikar</vydavatel> <rozsah jednotka="strana">120</rozsah> </kniha> </kniznica>
//*[@jednotka="strana"]/text() <?xml version="1.0" encoding="iso-8859-2"?> <kniznica> <kniha cielova-skupina="deti" jazyk="slovensky" typ="rozpravka" kolekcia="ano"> <autor><meno>Pavol Dobsinsky</meno> </autor> <nazov>Slovenskerozpravky</nazov> <vydanie>1994</vydanie> <vydavatel>Ikar</vydavatel> <rozsah jednotka="strana">120</rozsah> </kniha> </kniznica>
Aplikácie XPath • XSLT – vyberanie informácií z XML a transformácia formy ich prezentovania. • XPointer – odkazovanie na sa dokumenty resp. ich časti. • XLink – hyperlinky v XML
Domáca úloha • http://www.zvon.org/xxl/XPathTutorial/General_cze/examples.html • XPathtutorial. • http://www.mizar.dk/XPath/Default.aspx • Možnosť vyskúšať si XPath príkazy na ľubovoľnom XML dokumente.