PDA

View Full Version : [JAVA XML] dividere file di grandi dimensioni... si può fare?


kikko81
25-04-2008, 11:22
Ciao a tutti,
mi chiamo Francesco. Devo fare il parsing di un file molto grande, circa 3.5GB :muro: e ho già implementato alcuni metodi in java con libreria DOM. Solo dopo aver finito, ho capito che avrei dovuto usare SAX perchè DOM carica tutto in memoria, e quindi è per me impossibile. Vorrei quindi leggere un nodo alla volta da questo file ed eseguire così delle operazioni.

Ho scritto un metodo per fare appunto questo. Ovvero, il risultato viene messo in una variabile di tipo String e su questa stringa vengono fatte alcune operazioni di parsing.
Vi faccio un piccolo esempio per chiarire la situazione.

Questo è il file .xml di partenza:

<rootino>
<author>
James Strachan
</author>
</rootino>
<rootino>
<author>
James Strachan
</author>
</rootino>
.
.
.

è un file appunto molto lungo.

Questa è la stringa che ottengo dopo l'applicazione del metodo:

<rootino>
<author>
James Strachan
</author>
</rootino>

quando eseguo l'operazione di caricamento di questa stringa su una variabile di dipo Document una eccezzione mi dice che la stringa che ho estratto ha alcuni caratteri non consentiti per un file .xml

La string la carico così:


public Parser(String string){
try {
document = DocumentHelper.parseText(string);
} catch (DocumentException ex) {
Logger.getLogger(Parser.class.getName()).log(Level.SEVERE, null, ex);
}
}


il problema ottenuto è questo:

org.dom4j.DocumentException: Error on line 1 of document : An invalid XML character (Unicode: 0x0) was found in the element content of the document. Nested exception: An invalid XML character (Unicode: 0x0) was found in the element content of the document.

Sapete interpretare questo tipo di errore?
Avete una idea di soluzione?
Se volete vi posto il metodo che ho scritto per estrapolare la stringa da parsare.
Grazie per la vostra attenazione
a presto

Francesco