marți, 4 noiembrie 2008

XPATH si XQUERY - Rezolvarea exercitiilor din laboratorul #3, cursul de Interfete Evoluate

Rezolvarea laboratorului cu numarul 3, cursul de Interfete Evoluate.

Acest laborator a permis aprofundarea unor notiuni cum ar fi parsarea documentelor xml in vederea returnarii informatiilor utile la un moment dat. Suna complicat? Sper ca rezolvarea acestor exercitii sa demonstreze faptul ca acest task nu este nici pe departe atat de complicat precum pare...

REZOLVARE LABORATOR:

Exercitiul 1 (XPATH): Scrieti expresiile Xpath care sa returneze:

a)tot ce este in documentul xml
b)toate atributele din documentul xml
c)toate elementele care au id-ul "id" si sunt descendenti ai elementului grupa
d)toate elementele care au id-ul > 1000
e)numele tuturor studentilor
f)numele celui de-al doilea student
g)elementul nume al studentului cu id-ul 121
h)studentul al carui nume este Popescu
i)sa se returneze primul element student si advisorul lui
j)din ce grupa face parte studentul cu numele Popescu

Rezolvare (ca in laborator):
a) //*
b) //@*
c) /grupa//*[@id]
d) //*[@id>1000]
e) //student/nume/text()
f) //studenti/student[2]/nume/text()
g) //student[@id="1212"]/nume/text()
h) //student[nume/text='Popescu']
i) //student[1] | //advisor
j) //grupa[studenti/student/nume/text()='Popescu']/@id

Exercitiul 2 (XQUERY): Afisati participantii la chatul din "2008-09-15", care au dat mesaje, sortati alfabetic dupa nick (dintr-o arhiva de chat).
Output de tipul:
<Participants>
<Person>nick</Person>
</Participants>

Rezolvare:
<Participants>
{
for $var in distinct-values(doc("/db/ircbot/2008-09-15.xlog")/xlog/message/@nick)
return <Person>{$var}</Person>
}
</Participants>

Niciun comentariu: