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

XML/XSL et SOAP Discussion :

Lire fichier avec XML


Sujet :

XML/XSL et SOAP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 158
    Par défaut Lire fichier avec XML
    Bonsoir tous le monde,
    est ce qu'il y a une personne qui peut me dire pourquoi ce programme ne marche pas ? il est très simple pourtant.

    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
    51
     
    import java.io.*;
    import org.jdom.*;
    import org.jdom.input.*;
    import org.jdom.filter.*;
    import java.util.List;
    import java.util.Iterator;
    public class Essaye2
    {
       static org.jdom.Document document;
       static Element racine;
       public 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();
             Element courant = (Element)i.next();
             //On affiche le nom de l'element courant
             System.out.println(courant.getChild("nom" ).getText());
             System.out.println(courant.getChild("prenom" ).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(MonFichier())); //normalement c MonFichier.xml
          }
          catch(Exception e){}
          //On initialise un nouvel élément racine avec l'élément racine du document.
          racine = document.getRootElement();
          afficheALL();
       }
     
       public static String MonFichier()
       {
       return "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+
        "<personnes>"+
        "<etudiant >"+
          "<nom>MonNom</nom>"+
          "<prenom>MonPrenom</prenom>"+
         "</etudiant>"+
         "</personnes>";
       }
     
    }
    aucune erreur mais quand je lance l'exécution une exéption s'affiche :
    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Exception in thread "main" java.lang.NullPointerException
    at Essaye2.main(Essaye2.java:39)

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 585
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 585
    Par défaut
    Deux raisons :

    - Tu fais un try - catch sur Exception et n'affiche aucun message d'erreur dans le catch, et n'arrête pas le programme. Donc quand tu as une Exception, non seulement le programme continue avec la plupart des variables null, mais en plus tu ne sais pas qu'une erreur a eu lieu, ni laquelle.

    - Ce n'est pas comme ça qu'on se sert de new File(). File c'est pour lire et écrire des fichiers, tu sais, les choses qu'il y a sur le disque dur ?
    Ce que tu lui demandes, c'est d'ouvrir le fichier nommé <?xml version="1.0" encoding="UTF-8"?><personnes><etudiant ><nom>MonNom</nom><prenom>MonPrenom</prenom></etudiant></personnes> dans le répertoire courant.
    Apparemment il ne trouve aucun fichier de ce nom, et lance une exception. Cette exception est arrêtée par un try - catch qui ne gère rien, et le programme continue alors que les variables n'ont pas été initialisées, donc sont à null. Ce qui donne une NullPointerException.

    Solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document = sxb.build(new StringReader(monFichier()));
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Lire fichiers avec GNU PROLG
    Par ENSMM dans le forum Prolog
    Réponses: 5
    Dernier message: 27/02/2016, 22h43
  2. lire fichier avec caractères spéciaux
    Par expertax dans le forum Linux
    Réponses: 1
    Dernier message: 25/05/2011, 12h01
  3. lire fichier avec plus de 65536lignes
    Par Timar dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 24/09/2009, 18h00
  4. lire un fichier avec xml
    Par sorilazer dans le forum Format d'échange (XML, JSON...)
    Réponses: 7
    Dernier message: 15/04/2007, 20h59
  5. lire fichier avec l'extension .c ou .h en c
    Par lolomesnil dans le forum C
    Réponses: 1
    Dernier message: 13/04/2007, 10h18

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