IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Format d'échange (XML, JSON...) Java Discussion :

Manipuler des données XML avec Java et JDOM


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Points : 174
    Points
    174
    Par défaut Manipuler des données XML avec Java et JDOM
    Bonjour,

    je suis en train de tester de lancer le code fourni dans la FAQ :
    http://cynober.developpez.com/tutoriel/java/xml/jdom/

    Mais quand je lance le programme, j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Exception in thread "main" java.lang.NullPointerException
    	at JDOM2.main(JDOM2.java:45)
    La ligne 45 est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //On initialise un nouvel élément racine avec l'élément racine du document.
          racine = document.getRootElement();
    Le classe JDOM2 que j'utilise est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    import java.io.*;
    import org.jdom.*;
    import org.jdom.input.*;
    //import org.jdom.filter.*;
    import java.util.List;
    import java.util.Iterator;
     
    public class JDOM2
    {
       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("Exercice2.xml"));
          }
          catch(Exception e){}
     
          //On initialise un nouvel élément racine avec l'élément racine du document.
          racine = document.getRootElement();
     
          //Méthode définie dans la partie 3.2. de cet article
          afficheALL();
       }
    }
    Le fichier xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?xml version="1.0" encoding="UTF-8"?>
    <personnes>
       <etudiant classe="P2">
          <nom>CynO</nom>
          <prenoms>
             <prenom>Nicolas</prenom>
             <prenom>Laurent</prenom>
          </prenoms>
       </etudiant>
       <etudiant classe="P1">
          <nom>Superwoman</nom>
       </etudiant>
       <etudiant classe="P1">
          <nom>Don Corleone</nom>
       </etudiant>
    </personnes>

  2. #2
    Invité
    Invité(e)
    Par défaut
    C'est normal, vu que tu affectes ta variable sxb.build(new File("Exercice2.xml"));
    à document dans un try. Le problème du try, c'est que si ça ne se passe pas bien, il ne fait rien.

    Dans ton cas, je pense que cela ne se passe pas bien, donc ta variable document n'est jamais initialisée et elle retourne donc null, d'où l'erreur "null pointer Exception".

    Essaie de gérer l'exception dans le catch, et tu verras, je pense que ça ira mieux.

Discussions similaires

  1. Insertion des données xml avec une requête SQL
    Par Rymaya dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 06/12/2011, 10h22
  2. manipuler des fichier xml avec jdom
    Par sagon dans le forum XML/XSL et SOAP
    Réponses: 0
    Dernier message: 02/07/2011, 19h34
  3. [XQuery] traiter des données XML avec xquery
    Par fatjoe dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 29/03/2010, 02h17
  4. Manipulation des fichiers XML avec Pl/SQL
    Par wislam2007 dans le forum PL/SQL
    Réponses: 0
    Dernier message: 12/09/2008, 04h10
  5. [xml]manipuler des données xml sous Oracle9i
    Par crazy dans le forum SQL
    Réponses: 7
    Dernier message: 28/02/2004, 11h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo