Parser un fichier xml avec JDOM

Résolu
logarsalem Messages postés 18 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 25 décembre 2008 - 17 juin 2008 à 11:02
logarsalem Messages postés 18 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 25 décembre 2008 - 17 juin 2008 à 11:46
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

logarsalem Messages postés 18 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 25 décembre 2008
17 juin 2008 à 11:46
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
3
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
17 juin 2008 à 11:08
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
0
Rejoignez-nous