Parser un fichier xml avec JDOM [Résolu]

Signaler
Messages postés
18
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
25 décembre 2008
-
Messages postés
18
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
25 décembre 2008
-
Salut tous les membres de CodesSources ,




Je veux Parser un fichier xml avec JDOM, j'ai trouvé une méthode dans l'internet, mais il ne marche pas , est ce qu'il y'a quelqu'un qui peut m'aider ou est l'erreur : 

voila le code :
package salem;

import java.io.*;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.filter.*;
import java.util.List;
import java.util.Iterator;

public class Test {
    static org.jdom.Document document;
    static Element racine;

    // Ajouter cette méthodes à la classe JDOM2
    static void afficheALL() {
        // On crée une List contenant tous les noeuds "etudiant" de l'Element
        // racine
        List listEtudiants = racine.getChildren("etudiant");

        // On crée un Iterator sur notre liste
        Iterator i = listEtudiants.iterator();
        while (i.hasNext()) {
            // On recrée l'Element courant à chaque tour de boucle afin de
            // pouvoir utiliser les méthodes propres aux Element comme :
            // selectionner un noeud fils, modifier du texte, etc...
            Element courant = (Element) i.next();
            // On affiche le nom de l'element courant
            System.out.println(courant.getChild("nom").getText());
        }
    }

    public static void main(String[] args) {
        // On crée une instance de SAXBuilder
        SAXBuilder sxb = new SAXBuilder();
        try {
            // On crée un nouveau document JDOM avec en argument le fichier XML
            // Le parsing est terminé ;)
            document = sxb.build(new File("test.xml"));
        } catch (Exception e) {
        }

        // On initialise un nouvel élément racine avec l'élément racine du
        // document.
 ligne  44      racine = document.getRootElement();

        // Méthode définie dans la partie 3.2. de cet article
        afficheALL();
    }
}

Exception in thread "main" java.lang.NullPointerException
    at salem.Test.main(Test.java:44)
//instruction : racine = document.getRootElement();

est ce que j'ai fait des erreurs: j'ai copié le même code existé dans le cour, et j'ai mit Test.java et test.xml dans le même package (seulement j'ai ajouté un nouveaux fichier test.xml à ce package)  dans un nouveaux projet.  
Merci pour votre aide.

Salem Gassara

2 réponses

Messages postés
18
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
25 décembre 2008

Le probléme est que je doit mettre mon fichier test.xml dans le meme dossier ou se trouve mon .classpath et .project
document = sxb.build(new File("test.xml")); 
* moi j'ai le mit dans le méme package ou se trouve Test.java   "/src/salem/Test.java".
Merci pour votre participation [auteur/LAURENT1024/523332.aspx laurent1024] je vous remerci infiniment.
Salem Gassara
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
15
Bonjour
dans la partie juste avant
        try {
            // On crée un nouveau document JDOM avec en argument le fichier XML
            // Le parsing est terminé ;)
            document = sxb.build(new File("test.xml"));
        } catch (Exception e) {
// ici il faut mettre un e.printStackTrace(); on un message d'erreur pour voir si ton problème vient de là
        }

Cdt