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)) )