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 :

Erreur lors du parse d'un xml à cause des espaces [JDOM]


Sujet :

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

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Points : 268
    Points
    268
    Par défaut Erreur lors du parse d'un xml à cause des espaces
    Bonjour,
    J'ai une erreur lorsque je parse un fichier XML et que celui ci contient des élèments avec des espaces. Voici un extrait de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    List listDonnees = spnPgnCan_spec.getChildren("donnees");
    				Iterator i = listDonnees.iterator();
    				Element donnees = (Element)i.next();
    				system.out.println(donnees.getText());
    Ce code marche très bien sur une dizaine d'autre élèments de mon XML mais par contre pour mon élèment données j'ai un problème.
    La seule différence que j'ai constaté est l'espace que comporte cet élèment. J'ai donc supprimé l'espace du fichier XML manuellement et relancé l'application. Et là ça marche très bien.
    Je ne vois pas comment je peux faire pour qu'il n'y ai pas d'erreur lorsque l'iterateur rencontre un espace.

    Voici l'erreur que je rencontre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Exception in thread "AWT-EventQueue-0" java.util.NoSuchElementException: next() is beyond the end of the Iterator
    	at org.jdom.ContentList$FilterListIterator.next(ContentList.java:793)
    Savez vous comment je peux faire pour éviter cette erreur?

    Merci d'avance

  2. #2
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Points : 562
    Points
    562
    Par défaut
    Peux-tu nous montrer des exemples xml (ceux qui marchenet et qui ne marchent pas)?

  3. #3
    Expert confirmé Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 619
    Points : 4 352
    Points
    4 352
    Par défaut
    Avec StAx tu as une méthode nextTag(), qui peut être utilisée à la place de next(), et qui "mange" les espaces.

    Regarde dans la doc si il n'y a pas un équivalent avec jdom.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Points : 268
    Points
    268
    Par défaut
    J'ai trouvé la solution, je dois d'abord faire un teste
    puis ensuite faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Element donnees = (Element)i.next();
    				system.out.println(donnees.getText());
    Voici un exemple xml qui marche
    <donnees>marche</donnees>

    et en voici un qui marche pas
    <donnees>marque pas</donnees>

    J'extrait plein d'élément de mon xml mais c'était seulement celui qui contenait un espace qui faisait planter mon programme et lorsque je ne l'extrait pas ça marchait.

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Bof, faut revoir la logique de ton algorithme surtout.
    Si tu as "NoSuchElementException", c'est que tu fais un "next" alors qu'il n'y a plus d'élement sur ton itérateur.
    Il est certain que donnees.getText() retournera tout éventuel text contenu par un élement, espace ou non.

    Maintenant, je te conseille de mettre tout ton algo et une partie au moins représentative du XML que tu traites. Sinon personne ici ne pourra te dire exactement d'où vient ton problème.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur lors du parsing d'un fichier XML
    Par BIREFKOUN dans le forum Web sémantique
    Réponses: 6
    Dernier message: 17/01/2013, 15h55
  2. [2010] Erreur lors du chargement du code XML d'interface personnalisée
    Par Tofalu dans le forum Microsoft Office
    Réponses: 0
    Dernier message: 19/11/2009, 20h06
  3. [Java] probleme d'espace cree lors du parsing d'un xml en sax
    Par kayenne77 dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 13/07/2009, 05h26
  4. [DOM] Erreur lors du parsing d'un fichier XML par l'API DOM
    Par patricetoan dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 26/09/2005, 12h43

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