/ //

Funzioni PHP per XML - GM Multimedia

Vai ai contenuti

Menu principale:

Funzioni PHP per XML

Guida PHP



         L'XML (eXtensible Markup Language) è un metalinguaggio per la definizione di linguaggi di markup. Come JSON, l'XML è utilizzato anche per generare documenti che possono essere letti da applicazioni.
Un esempio di XML valido è il seguente:
				<?xml version="1.0" encoding="UTF-8"?>
				<user>
				    <firstName>Simone</firstName>
				    <lastName>DAmico</lastName>
				    <birthDate>2000-01-01</birthDate>
				    <country>IT</country>
				</user>
         Nel caso si volesse approfondire come funziona il linguaggio XML, prima di procedere è possibile fare riferimento alla Guida XML di base.


Accedere ad un documento XML con PHP
         PHP mette a disposizione degli strumenti che ci consentono di leggere e creare file XML.
In questo esempio utilizzeremo un concetto non incluso nella guida PHP: le classi e gli oggetti. Per approfondire questo argomento è possibile consultare la guida alla programmazione a oggetti con PHP
         Data una stringa che rappresenta un documento XML, vediamo come accedere alle singole proprietà:
				$xml = <<<XML
				<?xml version="1.0" encoding="UTF-8"?>
				<user>
				    <firstName>Simone</firstName>
				    <lastName>DAmico</lastName>
				    <birthDate>2000-01-01</birthDate>
				    <country>IT</country>
				</user>
				XML;
				$user = new SimpleXMLElement($xml);
				var_dump($user);
         La classe SimpleXMLElement ci consente di convertire una stringa XML in un oggetto che possiamo manipolare agevolmente. Eseguendo il codice appena visto, infatti, otteniamo come risultato:
				object(SimpleXMLElement)#1 (4) {
				  ["firstName"]=>
				  string(6) "Simone"
				  ["lastName"]=>
				  string(6) "DAmico"
				  ["birthDate"]=>
				  string(6) "2000-01-01"
				  ["country"]=>
				  string(6) "IT"
				}
         Ovviamente possiamo accedere anche ai singoli valori contenuti nelle proprietà dell'utente. Dato che in questa guida ancora non è stato introdotto il concetto di classe, per adesso possiamo trasformare l'oggetto in un semplice array ed eseguire le operazioni direttamente sull'array ottenuto:
				$user = (array)new SimpleXMLElement($xml);
				var_dump($user);
         Eseguendo questo codice noteremo che verrà stampato un array e non più un oggetto, questo perché abbiamo effettuato il casting ad array con la keyword (array). A questo punto possiamo quindi accedere al nome dell'utente con:
				echo $user['firstName'];


Convertire un array in una stringa XML
         Abbiamo visto che possiamo leggere una stringa XML e convertirla in un array PHP in maniera molto semplice. Vediamo invece come effettuare il contrario partendo da un array:
				$user = [
				    'firstName' => 'Simone',
				    'lastName' => 'D\'Amico',
				    'age' => 30
				];
				$xml = new SimpleXMLElement('');
				foreach ($user as $key => $value) {
				    $xml->addChild($key, $value);
				}
				echo $xml->asXML();
         Il risultato che otterremo è il seguente:
				<?xml version="1.0"?>
				<user><firstName>Simone</firstName><lastName>D'Amico</lastName><age>30</age></user>
         Analizzando il codice abbiamo creato un nuovo oggetto SimpleXMLElement e, ciclando su tutte le proprietà dell'array, le abbiamo aggiunte al nodo <user>. A questo punto attraverso il metodo asXML() abbiamo restituito la stringa contenente l'XML.
Visitatori online:
Sei il nostro visitatore n°:
© - Copyright 2015. - Tutti i diritti riservati - G.M. Multimedia
Torna ai contenuti | Torna al menu