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 un limbaj de marcare extensibil, un format bazat pe etichete care vă permite să definiți etichete personalizate pentru structurarea și transportul datelor.
  • 🌳 DOM-ul: Modelul de obiecte Document vede un document XML sau HTML ca un arbore, astfel încât codul poate naviga și edita noduri.
  • 🔄 Analizatoare XML: Un parser convertește un document XML într-un obiect DOM pe care PHP îl folosește. JavaScript, sau Python poate citi și schimba.
  • 📖 Citirea XML-ului: simplexml_load_file încarcă un fișier în obiecte, astfel încât să accesezi înregistrările cu o sintaxă de săgeți precum $xml->record->name.
  • 🛠️ Crearea XML-ului: Clasa DOMDocument construiește un document nod cu nod cu createElement și appendChild, apoi scrie fișierul prin save.
  • 🇧🇷 SimpleXML vs. DOM: SimpleXML este rapid de citit, în timp ce DOMDocument se potrivește atât creării precise, cât și manipulării complexe.
  • 🤖 Asistență AI: Instrumentele de inteligență artificială pot genera cod de parsare pentru o structură XML specifică și pot converti între matrice XML, JSON și PHP.

PHP și XML

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

Citiți XML folosind 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

Creați un document XML folosind PHP

Deschideți fișierul movies_list.xml.

Creați un document XML folosind PHP

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ă.

Întrebări frecvente

Ambele stochează date structurate, dar XML folosește etichete și acceptă atribute, comentarii și scheme, în timp ce JSON este mai ușor și se mapează direct la matrice și obiecte. JSON este comun pentru API-uri; XML se potrivește documentelor și configurației.

Încărcați fișierul cu SimpleXML sau DOMDocument, modificați valorile sau atributele nodului, apoi scrieți-l înapoi. Cu SimpleXML, editați proprietatea și apelați asXML('file.xml'); cu DOMDocument, editați nodul și apelați save().

XPath este un limbaj de interogare pentru selectarea nodurilor într-un document XML. În PHP, apelați $xml->xpath('//record/name') cu SimpleXML sau utilizați clasa DOMXPath pentru a prelua elementele corespondente fără a căuta.ping prin tot copacul.

Da. Inteligența artificială poate genera cod folosind simplexml_load_string, json_encode și json_decode pentru a converti între formate și a semnala datele care nu se mapează corect, cum ar fi atributele XML sau conținutul mixt. Verificați rezultatul.

Da. Inserați un exemplu din XML-ul dvs., iar AI poate produce cod SimpleXML sau DOMDocument care citește exact elementele și atributele de care aveți nevoie, inclusiv bucle pentru înregistrări repetate. Testați-l cu fișiere reale.

Rezumați această postare cu: