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

Čitajte XML koristeći 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

Stvorite XML dokument koristeći PHP

Kliknite vezu movies_list_xml

Stvorite XML dokument koristeći PHP

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.