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 :

Probléme que je ne comprend pas


Sujet :

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

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 57
    Points : 34
    Points
    34
    Par défaut Probléme que je ne comprend pas
    Je parsse un document XML avec JDOM, je récupère les élément un par un avec une récursive je calcule leur nombre et en même temps je dois traiter le texte contenu dans chaque nœuds j’ais réalisé cela mais dé que j’ajoute les ligne de code pour le traitement du texte de l’élément le calcule du nombre d’élément est faux, et mon programme n’accède plus au élément du deuxième niveau du document , j’espère que vous comprenez a peu prés mon pb je vous donne une partie de mon code et les lignes qui me cause ce pb sont ont commentaire et on rouge
    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
    52
    //....
    .........
    public void traitement(Element e)
        {
            //........on liste les fils de l'element donner.............//
                      List listelement2=e.getChildren();
           nombre_element=nombre_element+listelement2.size();//pour le calcule du nombre d'element le niveau2
            //........si il n'a d'element fils on le traite............//
            if( listelement2.size()==0)
            { e.getText();
         //....je calcule le poids de chaque terme dans l'element .....//
             contenu=e.getText();
             StringTokenizer st = new StringTokenizer(contenu);
           /*  while(st.hasMoreTokens()) {
                       String motentré=st.nextToken();
                            if (motentré.length() > 7)
                           motentré = motentré.substring(0, 7);//c'est un simple traitement du mot
    
                           if(al.contains(motentré))
                                 poid[al.indexOf(motentré)]++;
                           else {
                                 al.add(motentré);
                           poid[al.indexOf(motentré)] = 1;
                       }
    
                   }*/
    
    
        //....fin de calcule du poids des termes d'un element.....//
             }
    
            //........et pour chaque objet de la liste ..............//
            for(int cpt=0;cpt<listelement2.size();cpt++)
            {
            //...on verifie si les elements de la liste on des sous elments....//
              Element courant=(Element)listelement2.get(cpt);
             // System.out.println(courant.getName());
           //   System.out.println(courant.getText());
              if(courant.getChildren()==null)
            courant.getText();      //il faut mettre la methode de calcule du poids
              //.....et si il a des elements fils on applique de nouveau la fonction ....
              else
              {
                  traitement(courant);
    
              }//fin de else
    
            }//fin de for
        }
    
    ......// La suite du code
    Si quelqu’un a n’importe qu’elle idée sur la solution qu’il n’hésite surtout pas a me la faire partager

    Merci a vous tous
    Remarque
    Les ligne qui me cause pb marche très bien quant il sont seul c'est-à-dire j’ai fait rentré un simple texte et j’ai tester le fonctionnement de ces lignes ça marche très bien

  2. #2
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Points : 139
    Points
    139
    Par défaut
    Ton probleme est a l'execution si j'ai bien compris? ou a la compilation.

    Un truc louche quand meme, c'est tes noms de variables avec des accents. Je savais pas qu'on pouvait faire ca....mais je pense pas que cela soit tres conseille.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 57
    Points : 34
    Points
    34
    Par défaut
    Merci pour ta réponse bourbaki2003,

    mais je n'ai aucun pb lors de l'excution mais plutot lecalcule devien faux en plus de ça tous le code qui vient aprés est ignoré

    mais dé que j'enléve ces ligne tout redevient comme avant

    Merci

  4. #4
    Membre averti Avatar de dazz_x
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    269
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2006
    Messages : 269
    Points : 328
    Points
    328
    Par défaut
    Si le ou les caractères de séparation est ou sont connus, tu ferais mieux d'utiliser la méthode split de la classe String :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    String[] MesMots=contenu.split("caractèreseparation");
    //exemple si les mots sont délimités par une virgule
    String[] MesMots=contenu.split(",");
    elle est plus efficace que StringTokenizer. Ce qu'elle prend en entrée est une expression régulière, à voir dans la doc pour les recherches un peu plus compliquées....
    et puis ça règlera p'têt ton pb du même coup, qui sait ?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 57
    Points : 34
    Points
    34
    Par défaut
    merci dazz_x,

    peut étre je vais essayé ce que tu ma conseillé mais je ne pense pas que mon pb sera réglé car j'ai déja essauyé les ligne qui pose ce pb dans un autre projet mais pas assez compliqué que celui la et sa marché trés bien

    merci @ tt le monde

  6. #6
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Citation Envoyé par bourbaki2003
    Un truc louche quand meme, c'est tes noms de variables avec des accents. Je savais pas qu'on pouvait faire ca....mais je pense pas que cela soit tres conseille.
    Pour info : en Java on peut utiliser N'IMPORTE QUEL caractère unicode étant une lettre dans une langue donnée dans les noms de variables ce qui représente environ 20 000 caractères possibles au bas mot.

Discussions similaires

  1. Problème design que je ne comprend pas
    Par kimimsc dans le forum Services Web
    Réponses: 0
    Dernier message: 03/05/2010, 15h50
  2. Réponses: 33
    Dernier message: 02/02/2009, 22h25
  3. Problème de contrainte que je ne comprend pas
    Par trattos dans le forum Langage SQL
    Réponses: 0
    Dernier message: 15/07/2008, 11h28
  4. Problème Hors Limite que je ne comprends pas
    Par Bleys dans le forum Delphi
    Réponses: 2
    Dernier message: 11/01/2007, 15h42
  5. [Rave] un message que je ne comprends pas
    Par Clotilde dans le forum Rave
    Réponses: 2
    Dernier message: 30/09/2003, 21h46

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