Čitanje XML-a pomoću PHP-a
Kao što svi znamo XML, koji je razvijan kao samo-opisujući format, postigao je ogromnu popularnost i danas gotovo da i nema aplikacije koja nije u stanju proizvesti neku vrstu XML-a. Iako ga je vrlo jednostavno napraviti, problem se javlja kada želimo dobiti određene informacije iz njega.
Kako ne bi morali ručno parsirati XML datoteku (jer za PHP, XML je ništa više nego skupina znakova kao i bilo koji drugi tekst), postoji već gotovo rješenje za pronalaženje podataka unutar XML-a, i zove se Xpath. Xpath koristi izraze (nešto tipa SQL upita, samo za XML) kojima se lagano pronalaze podaci unutar strukturiranog XML dokumenta. Najčešće ćete susresti Xpath izraze kod XSLT-a, ali u pravilu Xpath se može koristiti za sve formate koji su na neki način nasljeđeni od XML-a.
Xpath može locirati bilo koji element u XML strukturi sa samo jednom linijom koda koja se naziva “izraz” (eng. expression).
Pa krenimo sa primjerom XML datoteke:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <skladiste> <sok> <ime>limunada</ime> <dobavljac>baka</dobavljac> <cijena>15</cijena> <kolicina>20</kolicina> </sok> <sok> <ime>fanta</ime> <dobavljac>ducan</dobavljac> <cijena>13</cijena> <kolicina>10</kolicina> </sok> <sok> <ime>coca-cola</ime> <dobavljac>ducan</dobavljac> <cijena>13</cijena> <kolicina>92</kolicina> </sok> </skladiste> |
Za početak, trebamo učitati našu XML datoteku i spremni smo za rad.
1 2 3 4 | //učitavanje XML-a iz datoteke $xml = simplexml_load_file('test.xml'); //učitavanje XML-a kao string $xml = simplexml_load_string('xml string'); |
Xpath izrazi se pišu tako da jednostavno pratite put do željenog elementa i taj isti put unesete kao izraz. Najjednostavnije ćete shvatiti na primjeru, pa evo kako ćemo dobiti sve sokove na skladištu:
1 | $sokovi = $xml->xpath('/skladiste/sok'); |
Xpath također podržava i složenije upite pa tako npr. možete tražiti prema vrijednosti određenog atributa:
1 | $za_nabavu = $xml->xpath('/skladiste/sok/[kolicina<30]'); |
Ovaj izraz će vratiti sve sokove čija je količina ispod 30. Ima još podosta operatora koji se mogu koristiti u Xpath izrazima te ih sve imate popisane na W3Schools stranicama.
Također, Xpath možete koristiti za sve ostale formate slične XML-u, kao što su naprimjer XSLT (Extensible Stylesheet Language Transformations) ili XMP (Extensible Metadata Platform od Adobe-a) i sl.
Vaš komentar
Morate biti prijavljeni kako bi mogli komentirati.




