Tutorial PHP XML: crea, analizza, leggi con l'esempio
Cos'è l'XML?
XML è l'acronimo di Extensible Markup Language.
XML viene utilizzato per strutturare, archiviare e trasportare dati da un sistema all'altro.
XML è simile all'HTML.
Utilizza tag di apertura e chiusura.
A differenza dell'HTML, XML consente agli utenti di definire i propri tag.
Cos'è DOM?
DOM è l'acronimo di Document Object Model.
È uno standard multipiattaforma e neutrale rispetto al linguaggio che definisce come accedere e manipolare i dati;
- HTML
- XHTML
- XML
DOM XML viene utilizzato per accedere e manipolare documenti XML. Esso visualizza il documento XML come una struttura ad albero.
Parser XML
Un parser XML è un programma che traduce il documento XML in un oggetto DOM (Document Object Model) XML.
L'oggetto DOM XML può quindi essere manipolato utilizzando Javasceneggiatura, Pythone PHP ecc.
La parola chiave CDATA, acronimo di (Unparsed) Character Data, viene utilizzata per ignorare caratteri speciali come "<,>" durante l'analisi di un documento XML.
Perché utilizzare XML?
- I servizi Web come SOAP e REST utilizzano il formato XML per scambiare informazioni. Imparare cos'è XML e come funziona ti darà un vantaggio competitivo come sviluppatore poiché le applicazioni moderne fanno un uso intensivo dei servizi web.
- I documenti XML possono essere utilizzati per memorizzare le impostazioni di configurazione di un'applicazione
- Ti consente di creare i tuoi tag personalizzati che lo rendono più flessibile.
Esempio di documento XML
Supponiamo che tu stia sviluppando un'applicazione che ottiene dati da un servizio web in formato XML.
Di seguito è riportato un esempio di come appare il documento 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>
QUI,
- “ " specifica la versione xml da utilizzare e la codifica
- “ " è l'elemento radice.
- “ … ” sono rispettivamente gli elementi figli dell'amministrazione e delle vendite.
Come leggere XML utilizzando PHP
Scriviamo ora il codice che leggerà il documento XML dei dipendenti e visualizzerà i risultati in 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>'; } ?>
QUI,
- “$xml = simplexml_load_file('employees.xml');” utilizza la funzione simplexml_load_file per caricare il nome file employees.xml e assegnare il contenuto alla variabile array $xml.
- “$lista = $xml->record;” ottiene il contenuto del nodo record.
- “for ($i = 0; $i < count(…)…” è il ciclo for che legge l'array numerico e restituisce i risultati
- “$lista[$i]->attributi()->man_no;” legge l'attributo man_no dell'elemento
- “$lista[$i]->nome;” legge il valore dell'elemento figlio name
- “$lista[$i]->posizione;” legge il valore dell'elemento figlio posizione
Testare la nostra applicazione
Supponendo che tu abbia salvato il file index.php nella cartella phptus/xml, cerca l'URL http://localhost/phptuts/xml/index.php
Come creare un documento XML utilizzando PHP
Vedremo ora come creare un documento XML utilizzando PHP.
Utilizzeremo l'esempio sopra nel diagramma ad albero del DOM.
Il codice seguente utilizza la classe DOMDocument integrata in PHP per creare un documento 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"; ?>
QUI,
- “$dom = nuovo DOMDocument();” crea un'istanza della classe DOMDocument.
- “$dom->codifica = 'utf-8';” imposta la codifica del documento su utf-8
- “$dom->xmlVersion = '1.0';” specifica il numero di versione 1.0
- “$dom->formatOutput = true;” garantisce che l'output sia ben formattato
- "$root = $dom->createElement('Film');" crea il nodo radice denominato Film
- "$attr_movie_id = nuovo DOMAttr('movie_id', '5467');" definisce l'attributo ID film del nodo Film
- "$child_node_element_name = $dom->createElement('ElementName', 'ElementValue')" crea il nodo figlio del nodo Film. ElementName specifica il nome dell'elemento, ad esempio Titolo. ElementValue imposta il valore del nodo figlio, ad esempio The Campaign.
- “$root->appendChild($movie_node);” aggiunge gli elementi movie_node al nodo radice Movies
- “$dom->appendChild($root);” aggiunge il nodo radice al documento XML.
- “$dom->salva($xml_nome_file);” salva il file XML nella directory principale del server web.
- "eco ' ' . $xml_nome_file . ' è stato creato con successo';” crea il collegamento al file XML.
Testare la nostra applicazione
Supponendo che tu abbia salvato il file create_movies_list nella cartella phptuts/xml, cerca l'URL http://localhost/phptuts/xml/create_movies_list.php
Fare clic sul collegamento movie_list_xml
Sommario
- XML è l'acronimo di Extensible Markup Language
- XML può essere utilizzato per scambiare informazioni tra sistemi o memorizzare le impostazioni di configurazione di un'applicazione, ecc.
- DOM è l'acronimo di Document Object Model. XML DOM visualizza il documento XML come una struttura ad albero
- Un parser XML è un programma che traduce XML un documento XML in un documento simile a una struttura ad albero DOM.
- CDATA viene utilizzato per ignorare i caratteri speciali durante l'analisi dei documenti XML.
- PHP utilizza simplexml_load_file per leggere documenti XML e restituire i risultati come array numerico
- Classe PHP DOMDocument per creare file XML.