W pliku r_and_j.xml znajduje się treść sztuki Williama Szekspira Romeo i Julia zapisana zgodnie ze schematem play.rnc.
Ułóż zapytania XPath (1.0 lub 2.0) zwracające:
14 SAMPSON 31 GREGORY 20 ABRAHAM 5 BENVOLIO 160 ...
Wskazówka: użyj pętli for Uwaga: pierwsza postać zabierająca głos jest anonimowa (pusty element SPEAKER) i dlatego odpowiedź zaczyna się od liczby 14.
(: doc("r_and_j.xml")/PLAY/PERSONAE/PERSONA :) (: distinct-values(doc("r_and_j.xml")/PLAY/ACT[2]/SCENE[1]/SPEECH/SPEAKER) :) (: doc("r_and_j.xml")/PLAY/ACT[2]/SCENE[1]/SPEECH[position()<=3]/SPEAKER :) (: doc("r_and_j.xml")/PLAY/ACT[last()]/SCENE[last()]/SPEECH[position()>(last()-3)]/SPEAKER :) (: (doc("r_and_j.xml")//SPEECH[SPEAKER="JULIET"]/LINE)[last()] | (doc("r_and_j.xml")//SPEECH[SPEAKER="ROMEO"]/LINE)[last()] :) (: count(doc("r_and_j.xml")/PLAY//SPEECH[SPEAKER="JULIET"]), count(doc("r_and_j.xml")/PLAY//SPEECH[SPEAKER="ROMEO"]) :) (: count(doc("r_and_j.xml")/PLAY//SPEECH[SPEAKER="JULIET"]/LINE), count(doc("r_and_j.xml")/PLAY//SPEECH[SPEAKER="ROMEO"]/LINE) :) (: doc("r_and_j.xml")/PLAY/ACT/SCENE/TITLE :) (: doc("r_and_j.xml")/PLAY/ACT//TITLE :) (: distinct-values(doc("r_and_j.xml")/PLAY/ACT/SCENE/SPEECH[1]/SPEAKER) :) (: distinct-values(doc("r_and_j.xml")/PLAY/ACT//SPEAKER) :) (: distinct-values(reverse(reverse(doc("r_and_j.xml"))/PLAY/ACT//SPEAKER)) :) for $i in distinct-values(doc("r_and_j.xml")/PLAY/ACT//SPEAKER) return (distinct-values(doc("r_and_j.xml")//SPEAKER)[. = $i], count((doc("r_and_j.xml")/PLAY/ACT//SPEECH[SPEAKER = $i]/LINE)) )