PDA

View Full Version : [java] parsing file DTD


vankar
28-12-2010, 13:23
Buongiorno a tutti, ho un problema bello grosso che mi sta portando via tempo e fatica: io devo creare un archivio partendo da un DTD. tutta la struttura e l'idea di implementazione è pronta. Il mio problema sta nel fare il parsing del DTD. Ci sono delle librerie che dal file .dtd generino un albero di parsing da cui posso cercare un nodo, estrarre figli, e lavorare come fari di un normale albero?

Io mi sono messo alla ricerca di questo, ma non sono riuscito a trovare molto, molte discussioni o domande su forum rimanevano senza risposta, o alludevano ad un parsing interno alla lettura/creazione di un xml.

qualcuno saprebbe aiutarmi? ieri preso dalla disperazione ho provato a farne uno io... ma presenta ancora qualche problema...

grazie per le attenzioni e a chiunque mi risponderà.

Don[ITA]
28-12-2010, 13:35
Prova a guardare qui:
http://matra.sourceforge.net/

vankar
28-12-2010, 13:53
;34033768']Prova a guardare qui:
http://matra.sourceforge.net/

grazie... mi chiedevo, sapresti llinkarmi anche un tutorial? se l'hai già usato e sai linkarmene uno :D

vankar
28-12-2010, 14:23
;34033768']Prova a guardare qui:
http://matra.sourceforge.net/

e iniziamo bene:

codice scritto:

import com.conradroche.matra.dtdparser.DTDParser;
import com.conradroche.matra.exception.DTDException;
import com.conradroche.matra.io.DTDFile;
public class ProvaMATRA {
public static void main(String[] arg) throws DTDException {
DTDParser dtdParser=new DTDParser();
DTDFile dtd=new DTDFile("/home/alessandro/Adempimento.dtd");
dtdParser.parse(dtd);
}
}

sul terminale:

begin parsing ... /home/alessandro/Adempimento.dtd
java.io.FileNotFoundException: /home/alessandro\Adempimento.dtd (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at java.io.FileInputStream.<init>(FileInputStream.java:66)
at com.conradroche.matra.io.DTDFile.read(DTDFile.java:145)
at com.conradroche.matra.dtdparser.DTDParser.parse(DTDParser.java:516)
at xmlTools.ProvaMATRA.main(ProvaMATRA.java:9)
Exception in thread "main" com.conradroche.matra.exception.DTDException: Specified DTD file (/home/alessandro\Adempimento.dtd) not found.
at com.conradroche.matra.io.DTDFile.read(DTDFile.java:161)
at com.conradroche.matra.dtdparser.DTDParser.parse(DTDParser.java:516)
at xmlTools.ProvaMATRA.main(ProvaMATRA.java:9)

Il file ovviamente c'è (tant'è che lo usavo col parser che stavo facendo io). Ho notato che però, prima del nome del file, mette una \ anzichè /. non è che genera un errore interno alla classe???