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 :

Exception in thread "main" java.lang.NullPointerException


Sujet :

XML/XSL et SOAP

  1. #1
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 12
    Par défaut Exception in thread "main" java.lang.NullPointerException
    Bonjour,
    j'ai écris un petit programme qui fait le parcours d'un fichier xml et qui affiche quelques éléments de ce fichier.Mais au cours de l'execution j'ai rencontré l'erreur suivante:Exception in thread "main" java.lang.NullPointerException
    at Extraction.<init>(Extraction.java:61)
    Sachant que mon programme a commencé de m'afficher des résultats puis tout et interrompu.
    Voici mon programme:
    public class Extraction {

    Dictionnaires d= new Dictionnaires();
    public Document document;
    public Element racine;
    public String entréelexicale="";
    public String sensdef="";
    public Extraction()
    {
    for(int i=0;i<d.lines.size();i++)
    {
    SAXBuilder sxb = new SAXBuilder();
    try
    {
    document = sxb.build(new File(d.lines.get(i)+".xml"));
    }
    catch (Exception ee)
    {
    }
    //Parcours du document xml pour recup�rer l'entr�e lexicale et la ou les definition(s)
    racine = document.getRootElement();
    List<?> lexicalentry = racine.getChildren("LexicalEntry");
    Iterator<?> lex = lexicalentry.iterator();
    while (lex.hasNext())
    {
    Element courant = (Element) lex.next();
    Element lemma =courant.getChild("Lemma");
    Element featlem=lemma.getChild("feat");
    if (featlem != null)
    if(featlem.getAttributeValue("att").equalsIgnoreCase("writtenForm"))
    {
    //recup�rer l'entr�e lexicale
    System.out.println("L'entrée lexicale est "+featlem.getAttributeValue("val"));
    entréelexicale=featlem.getAttributeValue("val");
    }
    Element word =courant.getChild("WordForm");
    List<?> listsens = courant.getChildren("Sense");
    Iterator<?> sens = listsens.iterator();
    while (sens.hasNext())
    {
    Element courant1 = (Element) sens.next();
    Element contexte=courant1.getChild("Context");
    Element definition=courant1.getChild("Definition");
    List<?> featdef=definition.getChildren("feat");

    if (featdef != null)
    {
    Iterator<?> def = featdef.iterator();
    while (def.hasNext())
    {
    Element courant2 = (Element) def.next();
    if (courant2.getAttributeValue("att").equals("text"))
    {
    System.out.println("Son sens est :"+courant2.getAttributeValue("val"));
    sensdef=courant2.getAttributeValue("val").toString();
    }

    }

    }
    }
    }
    }}
    SVP,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 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Bien sûr qu'il existe des gens qui peuvent t'aider, mais il faudrait être moins avare d'information. Et quand tu ajoutes de nouvelles informations, il faudrait les mettre ici, pas ailleurs.

    Comme vu dans ton autre sujet qui aurait dû être là dès le début :
    Pour être plus précis l'erreur est apparu au niveau de la ligne suivante:
    List<?> featdef=definition.getChildren("feat");
    Si tu as un NullPointerException ici, ça ne peut être que pour une seule raison : definition est null.
    Si definition est null, ça veut dire que dans la ligne précédente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    courant1.getChild("Definition");
    a renvoyé null.
    Et ça, ça veut dire que l'élément courant1 ne contient pas d'élément enfant nommé "Definition".

    Pour plus d'explications, il nous faut le XML.
    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
    Voici un fragment de mon fichier xml:
    <LexicalEntry id="د148">
    <feat att="partOfSpeech" val="verb" />
    <feat att="scheme" val="فَاعَلَ" />
    <Lemma>
    <feat att="writtenForm" val="دَاوَلَ" />
    </Lemma>
    <WordForm>
    <feat att="writtenForm" val="دَاوَلَ" />
    <feat att="grammaticalNumber" val="singular" />
    <feat att="grammaticalGender" val="masculine" />
    <feat att="person" val="thirdPerson" />
    <feat att="grammaticalAspect" val="accomplished" />
    <feat att="grammaticalVoice" val="activeVoice" />
    </WordForm>
    <Sense id="د148P1">
    <Context>
    <feat att="text" val="دَاوَلَ الأمْرَ بَيْنَهُمْ" />
    </Context>
    <Definition>
    <feat att="text" val=" جَعَلَهُ مُتَدَاوَلاً تَارَةً لِهؤُلاَء وَتَارَةً لِهَؤُلاَءِ " />
    <feat att="source" val="الْغَنِيّ" />
    </Definition>
    </Sense>
    </LexicalEntry>
    Sachant que en écrivant ce programme l'exécution commence et affiche quelques éléments puis l'exécution s'interrompt et affiche cette erreur.

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Citation Envoyé par infoo Voir le message
    Sachant que en écrivant ce programme l'exécution commence et affiche quelques éléments puis l'exécution s'interrompt et affiche cette erreur.
    Eh bien, il y en a un qui n'a pas d'élement Definition, et donc, quand tu demandes l'élément Definition, ça renvoie null, et quand tu essaies d'interroger null, ça fait un NullPointerException.
    Il faut prévoir le cas où il n'y a pas d'élément Definition, et ne pas l'interroger s'il n'existe pas.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 12
    Par défaut
    Bonjour,
    merci beaucoup thelvin.

Discussions similaires

  1. Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException ?
    Par freezerhm dans le forum Concurrence et multi-thread
    Réponses: 5
    Dernier message: 04/12/2007, 09h26
  2. Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    Par Trint dans le forum Interfaces Graphiques en Java
    Réponses: 6
    Dernier message: 27/02/2007, 11h28
  3. Réponses: 8
    Dernier message: 11/05/2006, 19h32
  4. [JDIC]Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    Par kedare dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 06/05/2006, 22h45

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