Parsing SAX e parsing DOM

04/01/2006

I parser si distinguono tra loro per tipologia di rappresentazione dei dati, principalmente abbiamo due tipi di parser per XML:

Per coloro che non avessero pratica dell'argomento, diremo che API è l'acronimo di Application Program(ming) Interface, con esso viene indicato un insieme di procedure disponibili per il lavoro dello sviluppatore; solitamente queste procedure vengono raggruppate in modo da creare un set di strumenti specifici per svolgere una certa mansione.
Le API consentono di evitare che un programmatore debba necessariamente scrivere le funzioni che gli servono da zero.

I parser SAX sono basati sulle "sequenze di eventi". Dato un file XML, essi lo scorrono per intero un carattere dopo l'altro; SAX non produce una rappresentazione di ciò che legge, ma memorizza soltanto gli eventi che lo sviluppatore decide di allocare ed esegue unicamenete le azioni relative a quell'evento.

Gli eventi di un parsing SAX sono fondamentalmente tre: l'incontro con un tag d'apertura (start element), l'incontro con un contenuto (text) e l'incontro con un tag di chiusura (end element); ad ognuno di essi potrà essere associato o meno un determinato evento.

I parser DOM sono stati concepiti secondo criteri completamente differenti rispetto a quelli utilizzati per SAX; se quest'ultimo "legge" un file isolandone i tag e gli eventi ad essi correlati, in DOM, invece, i documenti vengono letti come se fossero delle strutture gerarchiche ad albero.
Con DOM un file viene interamente caricato nella memoria, dopo di che sarà possibile effettuare le operazioni volute.

In un meccanismo del genere, ogni elemento del file si trasforma in un nodo che è la struttura di base del DOM, ogni altra struttura è ottenuta come specializzazione dell'interfaccia org.w3c.dom.Node e supporta tre tipi di operazioni: cessione di informazioni su un nodo, attraversamento della gerarchia e modifica dei nodi.
L'interfaccia mette a disposizione dei metodi per la lettura, la modifica della gerarchia e l'analisi delle proprietà di ciascun nodo.

Quindi, volendo rappresentare graficamente un albero gerachico di DOM potremmo immaginare una struttura del genere:
<?xml version="1.0" encoding="iso-8859-1"?>
<document>
<primogenito>
<secondo_figlio/>

</primogenito>
</document>
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.

© Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.

Stampa :: Torna alla Home