PHP XML vodič: Stvorite, analizirajte, čitajte s primjerom
Što je XML?
XML je akronim za Extensible Markup Language.
XML se koristi za strukturiranje, pohranu i prijenos podataka iz jednog sustava u drugi.
XML je sličan HTML-u.
Koristi otvarajuće i zatvarajuće oznake.
Za razliku od HTML-a, XML omogućuje korisnicima definiranje vlastitih oznaka.
Što je DOM?
DOM je akronim za Document Object Model.
To je međuplatformski i jezično neutralni standard koji definira kako pristupiti i manipulirati podacima u;
- HTML
- XHTML
- XML
DOM XML se koristi za pristup i manipuliranje XML dokumentima. To pregledava XML dokument kao struktura stabla.
XML parseri
XML parser je program koji prevodi XML dokument u XML Document Object Model (DOM) objekt.
XML DOM objektom se tada može manipulirati korištenjem Javaskripta, Python, i PHP itd.
Ključna riječ CDATA koja je akronim za (neraščlanjene) znakovne podatke koristi se za ignoriranje posebnih znakova kao što su “<,>” prilikom raščlanjivanja XML dokumenta.
Zašto koristiti XML?
- Web usluge kao što su SOAP i REST koriste XML format za razmjenu informacija. Učenje što je XML i kako funkcionira donijet će vam konkurentsku prednost kao razvojnom programeru budući da moderne aplikacije intenzivno koriste web usluge.
- XML dokumenti mogu se koristiti za pohranu konfiguracijskih postavki aplikacije
- Omogućuje vam stvaranje vlastitih prilagođenih oznaka koje ga čine fleksibilnijim.
Primjer XML dokumenta
Pretpostavimo da razvijate aplikaciju koja dobiva podatke s web servisa u XML formatu.
Ispod je primjer kako izgleda XML dokument.
<?xml version="1.0" encoding="utf-8"?> <employees status = "ok"> <record man_no = "101"> <name>Joe Paul</name> <position>CEO</position> </record> <record man_no = "102"> <name>Tasha Smith</name> <position>Finance Manager</position> </record> </employees>
OVDJE,
- “ ” navodi xml verziju koja će se koristiti i kodiranje
- “ ” je korijenski element.
- “ … ” su podređeni elementi administracije i prodaje.
Kako čitati XML koristeći PHP
Napišimo sada kod koji će čitati XML dokument zaposlenika i prikazati rezultate u web pregledniku. index.php
<?php $xml = simplexml_load_file('employees.xml'); echo '<h2>Employees Listing</h2>'; $list = $xml->record; for ($i = 0; $i < count($list); $i++) { echo '<b>Man no:</b> ' . $list[$i]->attributes()->man_no . '<br>'; echo 'Name: ' . $list[$i]->name . '<br>'; echo 'Position: ' . $list[$i]->position . '<br><br>'; } ?>
OVDJE,
- “$xml = simplexml_load_file('employees.xml');” koristi funkciju simplexml_load_file za učitavanje naziva datoteke zaposlenih.xml i dodjeljivanje sadržaja varijabli polja $xml.
- “$list = $xml->record;” dobiva sadržaj čvora zapisa.
- “for ($i = 0; $i < count(…)…” je for petlja koja čita numerički niz i ispisuje rezultate
- “$list[$i]->attributes()->man_no;” čita man_no atribut elementa
- “$list[$i]->name;” čita vrijednost podređenog elementa name
- “$list[$i]->position;” čita vrijednost podređenog elementa position
Testiranje naše aplikacije
Pod pretpostavkom da ste datoteku index.php spremili u mapu phptus/xml, potražite URL http://localhost/phptuts/xml/index.php
Kako stvoriti XML dokument koristeći PHP
Sada ćemo pogledati kako stvoriti XML dokument koristeći PHP.
Koristit ćemo gornji primjer u dijagramu DOM stabla.
Sljedeći kôd koristi PHP ugrađen u klasu DOMDocument za stvaranje XML dokumenta.
<?php $dom = new DOMDocument(); $dom->encoding = 'utf-8'; $dom->xmlVersion = '1.0'; $dom->formatOutput = true; $xml_file_name = 'movies_list.xml'; $root = $dom->createElement('Movies'); $movie_node = $dom->createElement('movie'); $attr_movie_id = new DOMAttr('movie_id', '5467'); $movie_node->setAttributeNode($attr_movie_id); $child_node_title = $dom->createElement('Title', 'The Campaign'); $movie_node->appendChild($child_node_title); $child_node_year = $dom->createElement('Year', 2012); $movie_node->appendChild($child_node_year); $child_node_genre = $dom->createElement('Genre', 'The Campaign'); $movie_node->appendChild($child_node_genre); $child_node_ratings = $dom->createElement('Ratings', 6.2); $movie_node->appendChild($child_node_ratings); $root->appendChild($movie_node); $dom->appendChild($root); $dom->save($xml_file_name); echo "$xml_file_name has been successfully created"; ?>
OVDJE,
- “$dom = novi DOMDocument();” stvara instancu klase DOMDocument.
- “$dom->encoding = 'utf-8';” postavlja kodiranje dokumenta na utf-8
- “$dom->xmlVersion = '1.0';” navodi broj verzije 1.0
- “$dom->formatOutput = true;” osigurava da je izlaz dobro formatiran
- “$root = $dom->createElement('Filmovi');” stvara korijenski čvor pod nazivom Filmovi
- “$attr_movie_id = novi DOMAttr('movie_id', '5467');” definira id atribut filma čvora Filmovi
- “$child_node_element_name = $dom->createElement('ElementName', 'ElementValue')” stvara podređeni čvor čvora Filmovi. ElementName navodi naziv elementa, npr. Naslov. ElementValue postavlja vrijednost podređenog čvora, npr. Kampanja.
- “$root->appendChild($movie_node);” dodaje elemente movie_node korijenskom čvoru Filmovi
- “$dom->appendChild($root);” dodaje korijenski čvor XML dokumentu.
- “$dom->save($xml_file_name);” sprema XML datoteku u korijenski direktorij web poslužitelja.
- "jeka ' ' . $xml_ime_datoteke. ' uspješno je stvoren';” stvara vezu na XML datoteku.
Testiranje naše aplikacije
Pod pretpostavkom da ste datoteku create_movies_list spremili u mapu phptuts/xml, potražite URL http://localhost/phptuts/xml/create_movies_list.php
Kliknite vezu movies_list_xml
rezime
- XML je akronim za Extensible Markup Language
- XML se može koristiti za razmjenu informacija između sustava ili pohranjivanje konfiguracijskih postavki aplikacije itd.
- DOM je akronim za Document Object Model. XML DOM vidi XML dokument kao strukturu stabla
- XML Parser je program koji prevodi XML XML dokument u DOM strukturu stabla poput dokumenta.
- CDATA se koristi za ignoriranje posebnih znakova prilikom raščlanjivanja XML dokumenata.
- PHP koristi simplexml_load_file za čitanje XML dokumenata i vraćanje rezultata kao numeričko polje
- PHP DOMDocument klasa za stvaranje XML datoteka.