Dicembre
2

XML e PHP

Posted In: Php by Dario

Buongiorno a tutti,
ieri ho passato una giornata a tentare di capire come funzionasse il parsing di file XML con PHP.
Nelle prossime righe vi spiegherò quali metodi esistono per fare questa operazione limitandomi a fare chiarezza sulle metodologie e tralasciando di scrivere codice (come ho faticato io a capire il codice faticate anche voi).
Ringrazio innanzitutto Iann per gli aiuti che mi ha dato e per la sua incredibile pazienza.

Il manuale di Php non è molto chiaro quando si tratta di capire questo genere di cose partendo da zero, spesso è meglio ricorrere a materiale esterno per avere idea delle opportunità che si hanno. Il parsing di file XML tramite Php può essere eseguito principalmente in tre modi:

  1. Tramite il parser SAX (Simple API for XML)
  2. Tramite la modalità DOM (Document Object Model)
  3. Tramite SimpleXML

E’ importante sottolineare che SimpleXML è disponibile solo a partire da Php 5.0 e non è presente in versioni del linguaggio più vecchie.
Personalmente ho deciso di implementare il parser tramite SAX, metodo non di facilissima implementazione ma capace di leggere file di grossa dimensione.
Detto in parole semplici, SAX fornisce la possibilità di elaborare il contenuto di un evento o di scatenare aventi specifici quando il parser incontra l’apertura o la chiusura di un determinato elemento XML. Quindi le funzioni che gestiranno il parser saranno la start_element e la end_element. Inoltre è obbligatoria anche la presenza di un’altra funzione chiamata character_data che esegue determinate operazioni quando incontra i dati all’interno di due tag XML. Nelle pagine del manuale di Php relative all’XML potete trovare un esempio completo.
L’approccio alla modalità DOM è diverso da quella SAX. Tramite DOM è possibile riprodurre in memoria una copia dell’intera struttura del documento XML. Non mi dilungo sulla modalità DOM in quando non ne ho ancora testato l’utilizzo e non ne sento minimamente il bisogno.
SimpleXML invece è molto interessante, tramite questa modalità di accesso ai documenti XML è possibile ottenere tramite una sola istruzione:

$oggetto = simplexml_load_file( ‘ data.xml ‘ );

un oggetto contenente tutta la gerarchia del documento XML, che sarà accessibile direttamente attraverso la classica sintassi di PHP.
Sicuramente SimpleXML è il più semplice metodo per elaborare un file XML, la sua unica complicazione è la necessità di Php 5.0.
In questo breve articolo ho spiegato le modalità di accesso ai file XML senza dilungarmi, sperando vi possa tornare utile; se avete bisogno di chiarimenti commentate pure.
Ciao a tutti,
Ingo

Commenti