Tutorial PHP XML: Creați, analizați, citiți cu exemplu
Ce este XML?
XML este acronimul pentru Extensible Markup Language.
XML este folosit pentru a structura, stoca și transporta date de la un sistem la altul.
XML este similar cu HTML.
Utilizează etichete de deschidere și de î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 multiplatform și neutru 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 XML Document Object Model (DOM).
Obiectul XML DOM poate fi apoi manipulat folosind Javascenariu, Python, și PHP etc.
Cuvântul cheie CDATA, care este acronimul pentru (Unparsed) Character Data, este folosit pentru a ignora caracterele speciale, cum ar fi „<,>” atunci când analizați un document XML.
De ce să folosiți XML?
- Serviciile web precum SOAP și REST folosesc formatul XML pentru a face schimb de informații. Învățarea ce este XML și cum funcționează vă va oferi un avantaj competitiv ca dezvoltator, deoarece aplicațiile moderne folosesc în mod intens serviciile web.
- Documentele XML pot fi folosite pentru a stoca setările de configurare ale unei aplicații
- Vă permite să vă creați propriile etichete personalizate, ceea ce îl face mai flexibil.
Exemplu de document XML
Să presupunem că dezvoltați o aplicație care primește date de la un serviciu web în format XML.
Mai jos este un exemplu despre cum arată documentul 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 care trebuie utilizată și codificare
- „ ” este elementul rădăcină.
- „ … ” sunt elementele copil ale administrației și respectiv vânzărilor.
Cum să citiți XML folosind PHP
Să scriem acum codul care va citi documentul XML al angajaților și să afișăm 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 numele fișierului employees.xml și a atribui conținutul variabilei matrice $xml.
- „$list = $xml->record;” primește conținutul nodului de înregistrare.
- „for ($i = 0; $i < count(…)…” este bucla for care citește matricea numerică și dă rezultate
- „$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 aplicației noastre
Presupunând că ați salvat fișierul index.php în folderul phptus/xml, navigați la adresa 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.
Vom folosi exemplul de mai sus în diagrama arborelui DOM.
Următorul cod folosește PHP construit în clasa 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', '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"; ?>
AICI,
- „$dom = nou 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 ID film al nodului Filme
- „$child_node_element_name = $dom->createElement('ElementName', 'ElementValue')” creează nodul copil al nodului Filme. ElementName specifică numele elementului, de exemplu Titlu. ElementValue setează valoarea nodului copil, de exemplu, Campania.
- „$root->appendChild($movie_node);” adaugă elementele movie_node la nodul rădăcină Movies
- „$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.
- „Ecou” . $xml_file_name . „ a fost creat cu succes”;” creează legătura către fișierul XML.
Testarea aplicației noastre
Presupunând că ați salvat fișierul create_movies_list în folderul phptuts/xml, navigați la adresa URL http://localhost/phptuts/xml/create_movies_list.php
Faceți clic pe linkul movies_list_xml
Rezumat
- XML este acronimul pentru Extensible Markup Language
- XML poate fi folosit pentru schimbul de informații între sisteme sau pentru a stoca setările de configurare ale unei aplicații etc.
- DOM este acronimul pentru Document Object Model. XML DOM vede documentul XML ca o structură arborescentă
- Un XML Parser este un program care traduce XML un document XML într-o structură arborescentă DOM asemănătoare documentului.
- CDATA este folosit pentru a ignora caracterele speciale la analizarea documentelor XML.
- PHP folosește simplexml_load_file pentru a citi documente XML și a returna rezultatele ca o matrice numerică
- Clasa PHP DOMDocument pentru a crea fișiere XML.