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 :

No Such Element Exception


Sujet :

XML/XSL et SOAP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 12
    Par défaut No Such Element Exception
    salut,
    je fais un parcours d'un fichier xml pour récupération de ces éléments.J'ai rencontré l'erreur suivante:
    Exception in thread "main" java.util.NoSuchElementException
    at org.jdom.ContentList$FilterListIterator.next(ContentList.java:788)
    voici une partie du code:
    SAXBuilder sxb = new SAXBuilder();
    try
    {
    documentres = sxb.build(new File("ttضِدُّهُ.xml"));

    }
    catch (Exception ee)
    {
    }
    racine = documentres.getRootElement();
    List<?> unite_lexicale = racine.getChildren("unite_lexicale");
    Iterator<?> lexc = unite_lexicale.iterator();
    while ((lexc.hasNext())||(lexc!=null))
    {
    Element cour = (Element) lexc.next();
    Element unite =cour.getChild("unite");
    String unit=unite.getText();
    }
    l'erreur se trouve dans la ligne suivante:Element cour = (Element) lexc.next();
    S'il vous plait est ce qu'il existe quelqu'un qui peut m'aider et merci d'avance.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Ce n'est pas une question XML mais une question Java -_-°.

    dans ton code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Iterator<?> lexc = unite_lexicale.iterator();
    while ((lexc.hasNext())||(lexc!=null))
    {
    tu testes s'il y a un élément suivant OU SI l'itérateur n'est pas null.
    Étant donné la ligne précédente, l'itérateur ne sera jamais null, donc la deuxième condition sera toujours vraie, donc la première sera toujours ignorée et il rentrera toujours dans le while, y compris s'il n'y a pas d'élément suivant, ce qui alors fera un NoSuchElementException.

    On peut se demander pourquoi tu testes si lexc est différent de null, puisqu'il ne peut pas être null d'une part, et que de toute façon tu viens de le déréférencer pour vérifier s'il a un élément suivant d'autre part.

    PS : Il ne faut pas faire de catch() { ... } vide
    PPS : Il faut utiliser la balise [CODE]
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 12
    Par défaut
    Quand j'ai enlevé la deuxième condition lexc!= null et j'ai fais l'exécution de nouveau j'ai remarqué que le programme n'arrive pas à traiter la boucle while.il s'arrête avant while.

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par infoo Voir le message
    il s'arrête avant while.
    Non.
    Peut-être qu'il n'y a tout simplement pas d'élément <unite_lexicale> et donc que lexc.hasNext() n'est jamais vrai. Auquel cas il n'entre pas dans la boucle et continue.

    Difficile à dire si tu ne nous parles pas de l'erreur obtenue.
    Mais en tout cas,
    - (lexc!=null) est forcément vrai du fait du code précédent, et vu que la condition du while est un OU avec ça, le while est toujours vrai, et lexc.hasNext() ne sert à rien.
    - de toute façon, si (lexc!=null) pouvait possiblement être faux, ça voudrait dire que lexc est null et donc que lexc.hasNext() lance un NullPointerException.

    PS : Pourrais-tu utiliser la balise [CODE] ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [Interactive Reporting] uncaught exception: No such property
    Par dakar36 dans le forum EPM (Hyperion)
    Réponses: 0
    Dernier message: 13/11/2014, 13h14
  2. Réponses: 6
    Dernier message: 01/03/2010, 09h53
  3. [exception] No such state 0
    Par maysam dans le forum Wildfly/JBoss
    Réponses: 0
    Dernier message: 14/04/2009, 12h00
  4. [DOM] Sax Exception: 'cvc-elt.1: Cannot find the declaration of element 'site:blog'
    Par laurent_m dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 05/03/2009, 22h52
  5. exception dernier élément array
    Par licorne dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 13/08/2007, 10h24

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