SimpleXML PHP

SimpleXML gestisce i compiti XML più comuni, lasciando il resto delle attività a altre estensioni.

Cos'è SimpleXML?

SimpleXML è una nuova funzionalità in PHP 5. È un modo conveniente per ottenere le proprietà e il testo degli elementi, quando si conosce la layout del documento XML.

Confrontato con i parser DOM o Expat, SimpleXML può leggere i dati di testo degli elementi con poche righe di codice.

SimpleXML può convertire un documento XML in un oggetto, ad esempio:

  • Elemento - Convertito in un oggetto SimpleXMLElement. Quando ci sono più elementi allo stesso livello, vengono messi in un array.
  • Proprietà - Accessibili tramite array associativi, dove gli indici corrispondono ai nomi delle proprietà.
  • Dati dell'elemento - I dati di testo dell'elemento vengono convertiti in stringhe. Se un elemento ha più nodi di testo, vengono ordinati secondo l'ordine in cui vengono trovati.

Quando si eseguono attività di base come quelle elencate di seguito, SimpleXML è molto rapido da utilizzare:

  • Lettura di un file XML
  • Estrazione dei dati da una stringa XML
  • Modifica dei nodi di testo o delle proprietà

Tuttavia, quando si lavora con XML avanzato, come gli spazi di nomi, è meglio utilizzare il parser Expat o XML DOM.

Installazione

Dalla versione PHP 5.0, la funzione SimpleXML fa parte integrante del core di PHP. Non è necessario installare nulla per utilizzare queste funzioni.

Utilizzando SimpleXML

Ecco un file XML:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

Intendiamo eseguire l'output del nome e dei dati degli elementi all'interno del file XML sopra menzionato.

Ecco cosa dobbiamo fare:

  1. Caricare il file XML
  2. Ottenere il nome del primo elemento
  3. Creare un ciclo che viene attivato su ogni nodo figlio utilizzando la funzione children()
  4. Eseguire l'output del nome e dei dati di ogni nodo figlio

Esempio

<?php
$xml = simplexml_load_file("test.xml");
echo $xml->getName() . "<br />";
foreach($xml->children() as $child)
  {
  echo $child->getName() . ": " . $child . "<br />";
  }
?>

L'output del codice sopra:

note
to: George
from: John
heading: Promemoria
body: Non dimenticare l'incontro!

Ulteriori informazioni su PHP SimpleXML

Per ulteriori informazioni su PHP SimpleXML, visiti il nostro Manuale di riferimento SimpleXML PHP.