Il parser di tipo DOM è un API sviluppata dal consorzio W3C che ci permette di avere accesso ad informazioni strutturate secondo gli standard dei metalinguaggi come XML e HTML.
Attraverso DOM, un documento viene rappresentato come una gerarchia strutturata per nodi: documento, elementi, attributi, contenuti e così via.
PHP supporta DOM ed è possibile effettuare azioni di parsing su documenti XML utilizzando questo strumento.
Innanzitutto, per l'utilizzo combinato di PHP e DOM dovremo assicurarci di disporre dell'apposita libreria php_domxml.dll.
Apriamo la nostra cartella "extensions" (o "ext") all'interno della directory principale di PHP, se troviamo la "dll" ciata saremo già a metà dell'opera, diversamente potremo scaricare la collection di "dll" per la nostra versione di PHP da questo link.
Un volta recuperata la libreria dovremo copiarla nella cartella "extensions", poi apriamo il php.ini e decommentiamo la riga ";extension=php_domxml.dll" eliminando il punto e virgola; salviamo le modifiche e riavviamo Apache.
Un'avvertenza importante è quella realtiva al carattere sperimentale di questa estensione, la tipologia di supporto e le funzioni dedicate cambiano spesso quindi ciò che noi facciamo ora potrebbe non essere più utilizzabile in futuro.
Presentiamo un piccolo esempio di codice PHP per la creazione di un docunemto XML:
$domxml = new DOMDocument('1.0');
$item = $domxml->appendChild($domxml->createElement('item'));
$titolo = $item->appendChild($domxml->createElement('titolo'));
$titolo->appendChild($domxml->createTextNode('titolo titolo titolo'));
echo $domxml->saveXML();
da cui otteremo il seguente output:
<?xml version="1.0"?>
<item>
<titolo>titolo titolo titolo</titolo>
</item>
appendChild() accoda un nuovo figlio alla gerarchia e quindi appende un elemento all'albero di DOM, come si avrà modo di notare viene richiamato in tutti gli eventi creativi.
createElement() presiede alla creazione di un elemento (nodo), nel nostro caso abbiamo la creazione di un nodo, "$item", che rappresenta la radice (root) del documento e di un elemento derivato, "$titolo", da appendere al root.
createTextNode() stabilisce l'introduzione di un contenuto (text node), nel nostro caso "titolo titolo titolo", creiamo così un ulteriore elemento da appendere all'albero nel punto più profondo della gerarchia.
A questo punto non ci rimane altro che passare alla produzione dell'output che sarà appunto il file XML desiderato.
Attenzione: questo articolo è stato concesso in esclusiva per la
pubblicazione a Mrwebmaster.it; ne è vietata la riproduzione,
anche parziale, senza l'esplicito consenso dell'autore e della redazione di Mrwebmaster.it. |