ZH megoldások 1.) rakd NÖVEKVŐ sorrendbe specifikációjuk szereint a következőket! (2) h1 + p (4) #main > p (1) * (3) p.warning /* A '*' minden elemre illeszkedik, ezért: a=b=c=d=0; 'h1' és 'p' is elemnév, ezért a=b=c=0 d=2; 'p' elemnév, a '.warning' egy pszeudoosztály, ezért: a=b=0, c=d=1; '#main' egy id, 'p' egy elemnév, ezért a=0, b=1, c=0, d=1 */ 2.) mi a specifikussága a 'div#nav > ul.menu' -nek? div - elemnév -> d=1 #nav - id -> b=1 ul - elemnév ->d=1 (plusz az előző 1, tehát d=2) .menu - pszeudoosztály(class) -> c=1 Tehát a specifikusság: a=0, b=1, c=1, d=2 Másik zh-ból ami beugratós: .div#p >ul.menu specifikusság: a=0, b=1, c=2, d=1 /* .div-> c=1, #p ->b=1, ul -> d=1, .menu->c=1 (plusz ami előtte volt c, tehát c=2 */ 3.) Specifikusság 'h2:first-child + p[dir=rtl]' a=0, b=0, c=2, d=2 4.) milyen színű lesz? HA VAN STYLE=...AKKOR TUTI HOGY AZ FOG GYŐZNI, BÁRHOL VAN!!!! =) (ha nincs, értelemszerűen, amelyik specifikusága a legerősebb) 5.) az xml valahogy így nézett ki:
  1. blbalblaba
Melyik illeszekdik a li elemre? válasz: #toc li:first-child (a toc id-jű elem leszármazottja, ami li és első gyermek) 6.) ki kellett választani a gyakvezetőt...Fülinél: oktató[beosztás] + oktató /* azaz olyan oktató nevű tag, aminek van beosztás attribútuma, és az ő közvetlen szomszédja (a + jel miatt) 7.) külön képen 8.) külön képen XPATH-os feladatok: (az xml-t sajnos nem tudom leírni, de szerintem ígyis meg lehet érteni) 1.)Futurana című rajzfilm azonosítóját visszaadó XPath kifejezés: //rajzfilm[cím="Futurana"]/@id /* id-ra @ jellel hivatkozunk...tehát: pl:
akkor: @azonosíto */ 2.)Milyen hosszú az SP azonosítójú rajzfilm? //rajzfilm[@id="SP"]/hossz 3.) Melyek azok a rajzfilmek, melyekben a Pigeon karakterből 3 db szerepel? (a karakter db-számát külön tag adja meg ) //karakter[.="Pigeon" and @darab="3"]/../cím /* a . az aktuális elem tartalmára vonatkozik, a .. az adott elem szülőjét jelképezi (a rajzfilm tagben volt a cím, és a karakter is, tehát ha a címet akarom megkapni, akkor, mivel a jelenlegi tag a karakter (//karakter), ezért a szülőjébe, a rajzfilmbe kell menni, és onnan már a címet ki tudjuk választani */ 4.) Összes különböző alkotó //alkotó[not[.=preceeding::alkotó]] /* ezt lehet following-gal is */ 5.) Hány olyan rajzfilm van, amelyben van Kutya vagy Robot karakter? count(//rajzfilm[karakter="Kutya" or karakter="Robot"]) 6.)Hány különböző karakter van összesen? count(//karakter[not(.=preceeding::karakter)]) 7.) Az utolsó rajzfilmben hányféle karakter szerepel? count(//rajzfilm[last()]/karakter) 8.) Rajzfilm, ahol nem szerepel a Robot karakter //rajzfilm[not(karakter="Robot")]/cím 9.) Van-e 30 percnél hosszabb Seth Green által készített rajzfilm? /*Logikai kifejezést kell, hogy visszaadjon! Nem kell semmit kiírattatni, mint az előzőnél, hogy /cím */ //rajzfilm[alkoto="Seth Green"]/hossz > 30 10.) Az első olyan rajzfilm címe, ami 20 percnél hosszabb és szerepel benne a Rozsomák karakter //rajzfilm[karakter="Rozsomák" and hossz > 20][1]/cím /*az [1] jelenti az elsőt, olyan mintha csak ezt írnám: //rajzfilm[1], csak még van előtte*/ 11.) Mi a címe az XM azonosítójú rajzfilmet KÖZVETLENÜL MEGELŐZŐ rajzfilmnek? //rajzfilm[following::rajzfilm[1]/@id="XM"] /* az a rajzfilm, ami után közvetlenül ([1]) az XM azonosítójú rajzfilm jön */ VAGY: //rajzfilm[id="XM"]/preceeding::rajzfilm[1]/cím /*kiválasztjuk az XM azonosítójú rajzfilmet, és ami közvetlenül ([1]) megelőzi*/ 12.) Összesen hány olyan karakter van, amely csak egy rajzflmben szerepel? count(//karakter[not(.=preceeding::karakter) and not(.=following::karakter)]) Másik ZH-ból egy példa (sum függvényre): Összesen hány elemet tartalmaznak a Star Wars témájú készletek? sum(//készlet[téma="Star Wars"]/elemek.szama)