PDA

View Full Version : [JAVA] Parser XML con SAX


Dostybear
17-10-2007, 14:11
Ciao!
Volevo sapere come fare a realizzare un parser XML con SAX in Java: quali classi realizzare, quali importare, come eseguire, ecc..
Inoltre volevo sapere se SAX permetta di identificare le relazioni tra nodi e sottonodi.
Grazie, ciao

Slide
17-10-2007, 15:14
Ciao!
Volevo sapere come fare a realizzare un parser XML con SAX in Java: quali classi realizzare, quali importare, come eseguire, ecc..
Inoltre volevo sapere se SAX permetta di identificare le relazioni tra nodi e sottonodi.
Grazie, ciao

Una volta che al tuo progetto fai vedere la libreria (il file jar) di sax, puoi utilizzarle le sue classi per parsare un documento xml.
Scarichi la libreria da qui
http://www.saxproject.org/
Sul sito trovi anche la documentazione.

Certo che hai scelto il modo più ostico per maneggiare l'XML: SAX è un parser "ad eventi", ed è scomodo da usare (ma molto molto molto veloce).

Se puoi, utilizza DOM o JDOM: in particolare, con jdom è davvero facile navigare attraverso il documento xml, elaborarlo e modificarlo.

Saluti!

Dostybear
17-10-2007, 15:33
Dici? Tra i 2 ho scelto proprio SAX perchè non ho la necessità di intervenire sul documento, mi interessa solo leggerlo estraendo le relazioni tra i vari elementi.

PGI-Bis
17-10-2007, 17:52
i parser sax e dom sono inclusi nella libreria standard. Non serve scaricarne un'altra (a meno che quella non abbia caratteristiche non presenti nel JRE predefinito ovviamente).

Slide
17-10-2007, 19:21
Dici? Tra i 2 ho scelto proprio SAX perchè non ho la necessità di intervenire sul documento, mi interessa solo leggerlo estraendo le relazioni tra i vari elementi.

Ricordo che quando ho usato SAX non è stata molto allegra la situazione. Questo perchè SAX "scatena" un evento ogni volta che legge un tag xml. Questo comporta, tra l'altro, di non poter accedere ad un elemento precedentemente letto, almeno che non si rielabori il documento dall'inizio. Insomma, SAX va bene se ti serve efficienza ed hai poca potenza di calcolo (ad esempio, se devi fare un programma per un palmare,cellulare etc).

Se ti serve comodità di manipolazione (anche per la sola lettura!!) di un documento XML vai su JDOM. Il documento è rappresentato in memoria con un albero; ma jdom ti mette a disposizione dei comodissimi metodi per navigare l'albero che rappresenta il documento xml.

Cmq. sia, per renderti conto della situazione, fatti un documento xml semplice semplice e parsalo prima con il solo SAX e poi con JDOM.

Facci sapere. Ciao.

Slide
17-10-2007, 19:23
i parser sax e dom sono inclusi nella libreria standard. Non serve scaricarne un'altra (a meno che quella non abbia caratteristiche non presenti nel JRE predefinito ovviamente).

Ovviamente hai ragione. Non volevo lasciare intendere l'obbligo di scaricare il .jar dal sito, ma desideravo dare il link al progetto SAX.
Sorry.

:)

Dostybear
19-10-2007, 16:28
Uhm, forse in effetti è meglio JDOM. Anche questo è già incluso nella libreria standard?
E invece che mi dite di JAXP?

AnonimoVeneziano
19-10-2007, 18:32
http://www.dis.uniroma1.it/~rosati/lingtrad/lezioni-XML/lezione-4.html

Slide
19-10-2007, 19:19
Uhm, forse in effetti è meglio JDOM. Anche questo è già incluso nella libreria standard?
E invece che mi dite di JAXP?

JAXP è troppo per quello che vuoi fare tu :)

Dostybear
24-10-2007, 10:36
Ho deciso di usare DOM,però ci sono un paio di cose che non mi sono chiare:
qual è la differenza tra DOM e JDOM?
in entrambi i modi, per la lettura dell'XML è necessario un parser SAX?
Inoltre sarebbe per me molto comodo se dal parser fosse possibile sapere se per esempio un certo attributo sia di tipo IDREF, oppure REQUIRED, ecc... Ma temo che questo non sia possibile analizzando solo l'xml, o sbaglio?