Tačke i opsezi

XPath izraz omogućava da se selektuje ili pokaže ceo čvor ili skup čvorova. Ponekad je potrebno da se pokaže nešto što nije čvor, na primer, kao, na primer, treća reč u drugom pasusu, ili godina u vrednosti atributa datum. Tome služe tačke i opsezi.

Tačka se identifikuje preko čvora koji je sadrži i nenegativnog indeksa u tom čvoru. Ako čvor, kao čvor element, sadrži elemente decu onda tačke postoje pre i posle svakog deteta. Ako čvor, kao tekstualni čvor, atribut i komentar ne sadrži decu, onda tačke postoje pre i posle svakog karaktera u njihovoj niskovnoj vrednosti.

Da bi pokazao tačku, XPointer koristi point() test u XPath izrazu. Prvo se koristi XPath izraz koji selektuje čvor koji sadrži tačku, a zatim se dodaje point() test i predikat koji selektuje pojedinačnu tačku u okviru čvora. Na primer, XPointer

xpointer(//lično-ime[position()=1]/text()/point()[position()=3])

prvo pronalazi prvi element lično-ime u dokumentu, zatim uzima njegovo dete, tekstualni čvor, i na kraju unutar tekstualnog čvora pokazuje tačku između trećeg i četvrtog karaktera. Ako, pak, XPath pokazuje čvor koji sadrži druge elemente decu, kao u slučaju

xpointer(//član/point()[position()=1])

pokazivač pokazuje tačku koja se nalazi tačno ispred početne etikete deteta ime.

Opseg je raspon parsiranih karakterskih podataka između dve tačke. Taj raspon može da bude dobro formiran XML segment, ali i ne mora. Opsezi se kreiraju pomoću četiri specifične XPointer funkcije:

  • range()
  • range-inside()
  • range-to()
  • string-range()
Na primer, argument funkcije range() je XPath izraz koji se evaluira u skup čvorova. Za svaki od čvorova iz ovog skupa ova funkcija vraća opseg koji pokriva tačno celi čvor. Na primer, ako je čvor element, onda je početna tačka opsega tačno ispred početne etikete, a završna tačka opsega tačno iza završne etikete. Na primer,

xpointer(range(//lično-ime[position()=1]))

vraća jedan opseg, a to je <lično-ime>Homer</lično-ime>. U sledećem primeru,

xpointer(range(//lično-ime))

funkcija range() vraća dva opsega: <lično-ime>Homer</lično-ime> i <lično-ime>Mardž</lično-ime>

Sadržaj

Dokument:
URL:
Autor: Cvetana Krstev
Poslednja izmena: