Bonjour,

Mon programme lit d'abord son fichier de configuration xml depuis le code suivant, d'une classe statique dont les variables sont privées:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
        SAXBuilder builder = new SAXBuilder(false);
        builder.setReuseParser(false);
        try 
        {
            doc = builder.build(new File(nomFich));
            racine = doc.getRootElement();  
            ...
tout ça fonctionne parfaitement!

L'utilisateur choisit ensuite le projet sur lequel il veut travailler et le programme lit alors le fichier de configuration XML du projet, dans un dossier tout à fait différent (celui du projet). (La classe est statique et les variables privées)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
        SAXBuilder builder = new SAXBuilder(false);
        builder.setReuseParser(false);
        try 
        {
            doc = builder.build(new File(nomFich));  <-- ERREUR
            ... 
         }  //try
        catch (Exception exc)
        {
            System.out.println("Erreur en lisant le fichier\n" + nomFich
                    + "\n" + exc.getMessage());
La ligne indiquée génère l'erreur suivante:
Erreur en lisant le fichier
C\:\\Documents and Settings\\AlainP\\Mes documents\\Temp\\main\main.xml
C:\Documents and Settings\AlainP\Mes documents\Info\Java\ZonesImages\C\:\Documents and Settings\AlainP\Mes documents\Temp\main\main.xml (Syntaxe du nom de fichier, de répertoire ou de volume incorrecte)
La 2e ligne démontre que le nom du fichier est correct.
MAIS (3e ligne et suivantes, le message d'erreur) SAXBuilder a ajouté ce chemin au chemin du premier fichier XML qu'il a lu (la configuration du programme).

Question(s):
Peut-on lire des fichiers XML dans des dossiers différents?
Comment peut-on «réinitialiser» SAXBuilder (J'ai cru que «builder.setReuseParser(false);» aurait pu... mais que non!

Merci de votre aide.