Zad 1 1) parent::/following-sibling::/ 2) ancestor:: 3) sum(preceding-sibling::[1]/punkty/text()) 4) descendant::[3]/text()|descendant::[4]/text() 5)sum(following-sibling::/wiek/text()) 6) following::/../child::/nr_prac/text() 7) child::nazwisko/text() 8) following::/attribute::plec Zad 2 parent::/student[wiek>21] parent::/student[attribute::="k"] lub @ zamiast attribute parent::/student[@plec="k"] parent::/following-sibling::/pracownik[@plec="m"] Zad 3 //*[position()=2] dostęp do wszystkich drugich wystąpień //student[position()<=3] o pozycji <=3 //student[position()!=2] o pozycji != 2 //student[position()>2] o pozycji >=2 Zad 4 a) ./following::wiek[.>20] wszystkie elementy następniki których pole wiek jest > 21 b) parent::/pracownik[imie = ' Jola '] Zad 5 //wiek/text() sum(//*[@='k']/wiek/text()) suma lat kobiet concat(concat(concat('Imie:',//student[2]/imie),'Nazwisko:'),//student[2]/nazwisko) sum(//[@='m']/wiek/text()) div count(//[@='m']/wiek/text()) srednia wieku mezczyzn Dodatkowo: count(./[following::*]) - zwraca liczbę węzłów które są jego podelementami concat('Imie: ',//student/imie[1],'Nazwisko: ',//student/nazwisko[1]) sum(//wiek/text()) div count(//wiek/text()) - średnia wieku wszystkich osób ./[following::*] wszystkie podelementy węzła