Tutorial PHP XML: Creați, analizați, citiți cu exemplu
⚡ Rezumat inteligent
PHP și XML lucrează împreună pentru a structura, stoca și schimba date între sisteme. Această prezentare explică XML, DOM și parserele XML, apoi arată cum se citește un document XML cu SimpleXML și cum se creează unul cu clasa DOMDocument, încheind cu momentul în care se utilizează fiecare.

Ce este XML?
XML este acronimul pentru Extensible Markup Language.
XML este utilizat pentru structurarea, stocarea și transportul datelor de la un sistem la altul.
XML este similar cu HTML. Folosește etichete de deschidere și închidere. Spre deosebire de HTML, XML permite utilizatorilor să își definească propriile etichete.
Ce este DOM?
DOM este acronimul pentru Document Object Model.
Este un standard multi-platformă și neutru din punct de vedere lingvistic, care definește modul de accesare și manipulare a datelor în:
- HTML
- XHTML
- XML
DOM XML este folosit pentru a accesa și manipula documente XML. Aceasta vizualizează documentul XML ca o structură arborescentă.
Analizoare XML
Un parser XML este un program care traduce documentul XML într-un obiect DOM (XML Document Object Model).
Obiectul XML DOM poate fi apoi manipulat folosind Javascenariu, Python, PHP și alte limbaje de programare.
Cuvântul cheie CDATA, acronimul pentru (neanalizate) Character Data (Date de caractere neanalizate), este utilizat pentru a ignora caracterele speciale precum „<” și „>” la analizarea unui document XML.
De ce să folosiți XML?
- Serviciile web precum SOAP și REST utilizează formatul XML pentru a face schimb de informații. Învățarea a ceea ce este XML și cum funcționează vă oferă un avantaj competitiv ca dezvoltator, deoarece aplicațiile moderne utilizează intens serviciile web.
- Documentele XML pot fi utilizate pentru a stoca setările de configurare ale unei aplicații.
- Îți permite să creezi propriile etichete personalizate, ceea ce îl face mai flexibil.
Exemplu de document XML
Să presupunem că ești dezvoltatping o aplicație care preia date de la un serviciu web în format XML.
Mai jos este un exemplu al modului în care arată un document XML.
<?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>
AICI,
- „ „specifică versiunea XML și codificarea care va fi utilizată”
- „ ” este elementul rădăcină.
- „ … „sunt elementele copil, câte unul per înregistrare de angajat.
Cum să citiți XML folosind PHP
Să scriem acum codul care va citi documentul XML al angajaților și va afișa rezultatele într-un browser web. 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>'; } ?>
AICI,
- „$xml = simplexml_load_file('employees.xml');” folosește funcția simplexml_load_file pentru a încărca fișierul numit employees.xml și a atribui conținutul variabilei $xml.
- „$list = $xml->record;” obține conținutul nodurilor de înregistrare.
- „for ($i = 0; $i < count(…)…” este bucla for care citește matricea și afișează rezultatele
- „$list[$i]->attributes()->man_no;” citește atributul man_no al elementului
- „$listă[$i]->nume;” citește valoarea elementului copil nume
- „$list[$i]->poziție;” citește valoarea elementului fiu poziție
Testarea cititorului XML
Presupunând că ați salvat fișierul index.php în folderul phptuts/xml, navigați la URL http://localhost/phptuts/xml/index.php
Cum se creează un document XML folosind PHP
Acum ne vom uita la cum să creați un document XML folosind PHP.
Următorul cod folosește clasa PHP încorporată DOMDocument pentru a crea un document XML.
<?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', 'Comedy'); $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"; ?>
AICI,
- „$dom = new DOMDocument();” creează o instanță a clasei DOMDocument.
- „$dom->encoding = 'utf-8';” setează codarea documentului la utf-8
- „$dom->xmlVersion = '1.0';” specifică numărul versiunii 1.0
- „$dom->formatOutput = true;” se asigură că rezultatul este bine formatat
- „$root = $dom->createElement('Filme');” creează nodul rădăcină numit Filme
- „$attr_movie_id = new DOMAttr('movie_id', '5467');” definește atributul movie_id al nodului film
- „$dom->createElement('ElementName', 'ElementValue')” creează un nod copil. ElementName specifică numele elementului, de exemplu Title. ElementValue setează valoarea nodului copil, de exemplu The Campaign.
- „$root->appendChild($movie_node);” adaugă nodul film la nodul rădăcină Filme
- „$dom->appendChild($root);” adaugă nodul rădăcină la documentul XML.
- „$dom->salvare($xml_file_name);” salvează fișierul XML în directorul rădăcină al serverului web.
- „echo «$xml_file_name a fost creat cu succes»;” afișează un mesaj de succes.
Testarea XML-ului Creator
Presupunând că ați salvat fișierul create_movies_list.php în folderul phptuts/xml, navigați la URL http://localhost/phptuts/xml/create_movies_list.php
Deschideți fișierul movies_list.xml.
SimpleXML vs. DOMDocument
PHP oferă două modalități principale de a lucra cu XML. SimpleXML este cel mai potrivit atunci când trebuie să citiți în principal date, în timp ce DOMDocument oferă un control mai fin pentru construirea și editarea intensivă a documentelor. Tabelul de mai jos le compară.
| Aspect | SimpleXML | DOMDocument |
|---|---|---|
| Usor de folosit | Foarte simplu; documentul se comportă ca niște obiecte imbricate | API mai detaliată, bazată pe noduri |
| Cel mai bun pentru | Citire și editare luminoasă | Crearea de documente și manipularea complexă |
| Stil de acces | $xml->înregistrare->nume | createElement() și appendChild() |
| Suport XPath | Da, prin ->xpath() | Da, prin intermediul clasei DOMXPath |
O regulă practică este să folosiți mai întâi SimpleXML pentru citirea fluxurilor și a fișierelor simple și să treceți la DOMDocument atunci când trebuie să creați documente, să inserați noduri în poziții specifice sau să validați în funcție de o schemă.



