PDA

View Full Version : [JAVA-Parser XML]


julianross1983
18-11-2006, 18:58
Salve,sto cercando di implementare un Parser XML in java utilizzando il package apache "xerces" ultima versione...Ho fatto un programmino di prova con un main che istanzia una nuova classe Parser:

import org.apache.xerces.parsers.DOMParser;
import org.w3c.dom.Document;
import java.io.IOException;
import org.xml.sax.SAXException;
import org.xml.sax.*;

public class Parser {
public static void main(String args[]){
String file="c:\\testxml.php";
new Parser(file);
}

public Parser(String file){
Document document=null;
DOMParser parser = new DOMParser();
try {
parser.parse(file);

}
catch(Exception e){

}
}

IL PROGRAMMA VIENE COMPILATO...
MA QUANDO LO ESEGUO ECCO CHE CASINO SUCCEDE!!

Exception in thread "main" org.apache.xerces.parsers.ObjectFactory$ConfigurationError: Provider org.apache.xerces.parsers.XIncludeAwareParserConfiguration not found
at org.apache.xerces.parsers.ObjectFactory.newInstance(ObjectFactory.java:340)
at org.apache.xerces.parsers.ObjectFactory.createObject(ObjectFactory.java:251)
at org.apache.xerces.parsers.ObjectFactory.createObject(ObjectFactory.java:97)
at org.apache.xerces.parsers.DOMParser.<init>(DOMParser.java:125)
at org.apache.xerces.parsers.DOMParser.<init>(DOMParser.java:109)
at Parser.<init>(Parser.java:15)
at Parser.main(Parser.java:10)

Process completed.

COME SI INSTALLA QUEL MALEDETTO "xerces"
E COME SI POTREBBE RISOLVERE?USO JCREATOR COME EDITOR!GRAZIE

PGI-Bis
18-11-2006, 19:44
L'installazione funziona come penso che tu l'abbia già fatta: prendi il file "xercexImpl.jar" lo includi nel classpath durante l'esecuzione l'installazione è finita. Una versione antelucana del JRE potrebbe richiedere anche l'uso di "xml-apis.jar". Almeno per Xerces2.

julianross1983
19-11-2006, 14:25
Ma a che servono tutti quei file tipo..Xerces-j-bin.zip,Xerces-j-src.zip,Xerces-j-tools.zip,servono tutti?Dal sito di apache non si capisce molto bene la cosa.mi potresti spiegare in modo dettagliato come installare il tutto?grazie mille

PGI-Bis
19-11-2006, 16:09
Parlo in riferimento all'ultima versione di Xercex2 (2.8.1) e ad un piattaforma Java 1.5.

In Xerces-J-bin trovi un file jar, XercesImpl.jar.

Ecco, quello è l'unico file che ti serve. Ti serve nel senso che devi includerlo nel classpath durante la compilazione e devi distribuirlo insieme alla tua applicazione per l'esecuzione.

"src" contiene i file sorgente di Xerces che ti servono nel caso in cui tu voglia creare un file uguale a XercerImpl.jar.

il contenuto di tools non l'ho mai usato.

julianross1983
19-11-2006, 18:35
Ho provato a compilare con quel file...e va tutto ok...poi quando eseguo:

Exception in thread "main" java.lang.NoClassDefFoundError: Parser...
SONO NEL PANICO TOTALE!

PGI-Bis
19-11-2006, 19:05
Tanto per sicurezza, per l'esecuzione includi il file jar? Tipo:

java -cp .;xercesImpl.jar Main

julianross1983
20-11-2006, 09:18
Ok con quel ".;" và(ma che cosa rappresenta?)...ultima domanda e non ti rompo più:se volessi configurare il JCreator per dire quali classi mi servono come dovrei fare?Grazie Mitico!

PGI-Bis
20-11-2006, 13:04
Il '.' (punto) indica la directory di lavoro (quella da cui lanci il comando). Usando il '.' tanto java quanto javac includono la directory di lavoro tra il percorso di ricerca delle classi. Può non essere necessaio, dipende da dove si trovano le classi e i file jar necessari alla compilazione e all'esecuzione, ma di solito si mette ad abundantiam.

Il ';' (punto e virgola) è il separatore di percorsi. Il carattere che fa da separatore di percorsi dipende dal sistema operativo. Punto e virgola per Windows, due punti per Unix. Serve per separare la sequenza di caratteri che forma un percorso da un'altra sequenza di caratteri che forma un altro percorso.

Nel nostro caso:

-cp .;xercesImpl.jar

significa che il valore della variabile classpath usata dal compilatore include due percorsi:

"." (la directory corrente) e "xercesImpl.jar". Il secondo è il nome di un file che viene risolto in un percorso completo, secondo le impostazioni dei programmi javac.exe e java.exe, usando la directory di lavoro come contenitore di quel nome di file.

Per usare xerces in JCreator hai due opzioni. O copi il file xercerImpl.jar nella subdirectory "ext" del JRE e del JDK

c:\programmi\java\jre1.5.0_09\lib\ext
c:\programmi\java\jdk1.5.0_09\jre\lib\ext

oppure frughi tra le opzioni del progetto o tra le impostazioni di JCreator alla ricerca di qualcosa che somiglia a "external libraries" o librerie richieste dal progetto o quant'altro: qualcosa che ti permetta di selezionare una directory o un file jar. Come avrai capito, non so essere più preciso al riguardo :D.

julianross1983
23-11-2006, 14:30
Grazie Mille!!