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 :

calculer des sommes d'un fichier xml avec dom [DOM]


Sujet :

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

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2013
    Messages : 53
    Points : 30
    Points
    30
    Par défaut calculer des sommes d'un fichier xml avec dom
    j'ai un fichier XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?xml version="1.0" encoding="ISO-8859-1" ?>
       <liste> 
        <client nom="Jean Charles"> 
            <transaction montant="500" />
     <question>Quelle est la dernière marque?</question>
            <transaction montant="1200" /> 
         </client> 
         <client nom="Pierre Élisabeth"> 
            <transaction montant="600" /> 
            <transaction montant="800" /> 
     <question>Où puis-je trouver le modèle 2002?</question>
            <transaction montant="2000" /> 
         </client> 
        </liste>
    je veux calcule la somme des valeurs de l'attribut « montant » pour chaque client pour avoir ce résultat :
    Nom du client: Jean Charles
    Somme: 1700
    Nom du client: Pierre Élisabeth
    Somme: 3400
    voila mon programme :
    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
    import org.w3c.dom.*;
     import javax.xml.parsers.*;
     
     public class transactions {
     public static void main(String[] args) throws Exception {
        DocumentBuilderFactory factory = 
         DocumentBuilderFactory.newInstance();
        DocumentBuilder parser = 
         factory.newDocumentBuilder();
        Document doc = parser.parse(args[0]);
        Element racine = doc.getDocumentElement(); 
        NodeList nl = racine.getElementsByTagName("client");
        for (int i = 0; i < nl.getLength(); ++i) {
           Element client = (Element) nl.item(i);
           NodeList tnom = client.getElementsByTagName("client");     
           Element nom = (Element) tnom.item(0); 
           System.out.println("nom du client :" +client.getAttribute("nom"));
           NodeList mn = doc.getElementsByTagName("transaction");     
           System.out.println("somme :" +mn.getLength("montant"));
     
     }
    }
     }
    j'ai réussie a avoir les nom des clients mes je connais pas la fonction vraiment qui peu calculer les sommes des montants avec DOM merci pour votre aide .

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     NodeList mn = doc.getElementsByTagName("transaction");
    te donne la liste des élements transaction :

    tu dois parcourir cette liste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for(int i=0; i<mn.getLength(); i++) {
        Element transaction = (Element)mn.item(i);
        ...
    }
    ensuite il faut lire l'attribut montant pour obtenir sa valeur. un attribut étant toujours de type String, tu vas devoir le convertir en int pour pouvoir en faire la somme


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(int i=0; i<mn.getLength(); i++) {
        Element transaction = (Element)mn.item(i);
        int montant = Integer.parseInt(transaction.getAttribut("montant");
        ...
    }
    pour faire la somme de tous les montants, il te faut une variable, et ensuite cumuler chaque montant dans cette variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    int somme=0; // on initialise la somme à 0
    for(int i=0; i<mn.getLength(); i++) {
        Element transaction = (Element)mn.item(i);
        int montant = Integer.parseInt(transaction.getAttribut("montant");
        somme+=montant; // on ajoute le montant de la transaction à la somme
    }
    System.out.println("La somme des " + mn.getLength() + " transaction(s) du client "+client.getAttribute("nom")+" est : "+ somme);
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2013
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    merci pour votre aide le programme fonction mes il donne pas le bon résultat pour la somme :
    nom du client : Jean Charles
    La somme des 5 transaction(s) du client Jean Charles est : 2500
    nom du client : Pierre Élisabeth
    La somme des 5 transaction(s) du client Pierre Élisabeth est : 2500
    il faut qui me donne :
    somme : 1700
    somme: 3400
    Merci

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    j'avais pas vu que tu avais écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NodeList mn = doc.getElementsByTagName("transaction");
    donc tu as toutes les transactions du doc !!!

    avec ceci tu auras que les transaction de ton client

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NodeList mn = client.getElementsByTagName("transaction");
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2013
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    la sa me donne :
    somme : 1000
    somme : 1800

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    euh, tu peux me recoller ton code stp ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2013
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    problème résolut merci beaucoup Joël DRIGO tes bien gentil

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2013
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    pour les accents on java en utilise quoi comme fonction

  9. #9
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par jean22 Voir le message
    problème résolut merci beaucoup Joël DRIGO tes bien gentil
    dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Element transaction = (Element)mn.item(i);
    t'aurais pas mis 0 au lieu de i des fois
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  10. #10
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par jean22 Voir le message
    pour les accents on java en utilise quoi comme fonction
    un peu vague comme question

    tu as tes accents des chaines lues de ton xml qui s'affichent mal, c'est ça ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2013
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    oui Pierre Élisabeth qui s'affiche mal , pour ta question oui il y'avez un problème avec sa
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Element transaction = (Element)mn.item(i);
    il fallu que je change pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Element transaction = (Element)mn.item(k);
    Merci

  12. #12
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par jean22 Voir le message
    oui Pierre Élisabeth qui s'affiche mal , pour ta question oui il y'avez un problème avec sa
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Element transaction = (Element)mn.item(i);
    il fallu que je change pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Element transaction = (Element)mn.item(k);
    Merci
    ah oui parce que tu avais déjà une boucle sur i, tu as changé ta variable d'itération.

    pour les accents, 2 aspects :
    1)
    en xml, tu n'as pas besoin de les gérer quand ton fichier est correctement encodé.
    Dans l'entête du fichier tu as l'encodage qui est renseigné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    mais ça c'est pour le parser. si ton fichier est encodé en autre chose : le parseur va mal décoder les caractères

    il faut que tu t'assures que l'encodage de ton fichier est bien celui indiqué dans l'attribut encoding : ouvre ton fichier dans un éditeur de texte (genre pspad, notepad++, textedit, ultraedit, ton éditeur préféré quoi...), vérifie et corrige éventuellement

    2) si tu affiches en console/shell os ((par exemple sous windows c'est win1252), il est possible que l'encodage de ta console ne soit pas le même que celui utilise par défaut en java
    soit tu modifies l'encodage de ta console (voir la doc de ton os)
    soit tu modifies l'encodage de ton prog (ajoutes dans ta ligne de commande -Dfile.encoding=win1252 par exemple)
    soit tu modifies l'encodage de tes chaines :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public String reencodeString(String s, String sourceEncoding, String targetEncoding) throws UnsupportedEncodingException  {
         if( sourceEncoding==null) {
             // default encoding
             sourceEncoding=System.getProperty("file.encoding");
         }
         if( targetEncoding==null) {
             // default encoding
             targetEncoding=System.getProperty("file.encoding");
         }
         return new String(s.getBytes(sourceEncoding),targetEncoding);
    }
    tu dois pouvoir redéfinir aussi ton System.out, mais je t'avoue que j'ai jamais essayé en changeant l'encodage : ça m'intéresse de savoir si ça marche :

    au tout début de ton prog
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out=new PrintStream(FileDescriptor.out, true, "win1252");
    par exemple
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2013
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    Merci

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2013
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    je sais pas ces ton programme fonction ,mes ce lui la fonction bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public static void main(String[] args) { 
     
    String os = System.getProperty("os.name"); 
     
    if (os.startsWith("Windows")) { 
     
       try { 
     
         System.setOut(new PrintStream(System.out, true, "Cp850")); 
       } 
        catch (UnsupportedEncodingException e) {} 
    }
    Merci pour ton aide

  15. #15
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    ok merci, ça confirme le fonctionnement du cas que j'avais jamais testé (cp850 c'est l'ancien encodage pour dos, çà doit suffire pour les accents, mais tu devrais mettre win1252 pour avoir vraiment tous les caractères spéciaux)
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  16. #16
    Nouveau membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2013
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    quand j'utilise win1252 ca marche pas pour les accents

  17. #17
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    Ça marcherait en dehors de la console ou si tu réglais la console en codepage 1252.

    Mais bon... Effectivement, quand c'est dans la console qu'on veut afficher, et si la console n'est pas déjà réglée à 1252, ça sert à rien de conseiller d'écrire dedans en 1252.

    À ce niveau-là autant conseiller utf-8 directement : là on peut même écrire en chinois et en hébreux.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  18. #18
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    oui c'est vrai, je ne sais pas pourquoi j'étais persuadé que la console était encodé en win1252, alors qu'elle est en cp850. faut dire que j'utilise plus la console os directement depuis des années...

    autre erreur que j'ai faite (que tu as corrigé par toi même jean22) et petit oubli :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out), true, "cp850"));
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  19. #19
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2013
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    euh, tu peux me recoller ton code stp ?
    Je vais continuer la discussion avec toi joel.drigo... car je ne comprend pas ou je fais erreur.

    Souvent que t'écris et tu me trouve une inversion banale... ou un choses bébête.. et tout marche.. mais j'ai relus vos post plusieurs fois et je ne trouve pas...


    Une idée ? Je suis loins ??


    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
     
    import org.w3c.dom.*;
        import javax.xml.parsers.*;
     
        public class transactions {
            public static void main(String[] args) throws Exception {
                DocumentBuilderFactory factory =
                DocumentBuilderFactory.newInstance();
                DocumentBuilder parser =
                factory.newDocumentBuilder();
                Document doc = parser.parse(args[0]);
                Element racine = doc.getDocumentElement();
     
     
                //get client
     
                NodeList nl = racine.getElementsByTagName("client");
                for (int i = 0; i < nl.getLength(); ++i) {
                    Element client = (Element) nl.item(i);
                    NodeList tnom = client.getElementsByTagName("client");
                    Element nom = (Element) tnom.item(0);
                    System.out.println("nom du client :" +client.getAttribute("nom"));
     
                    // get transaction
                    NodeList mn = client.getElementsByTagName("transaction");
                    int somme=0; // on initialise la somme à 0
                    for(int t=0; t<mn.getLength(); t++) {
                        Element transaction = (Element)mn.item(t);
     
                     // aditionner la somme
                     int montant = Integer.parseInt(transaction.getAttribut("montant"));
                        somme+= montant; // on ajoute le montant de la transaction à la somme
     
                    }
     
                   System.out.println("La somme des " + mn.getLength() + " transaction(s) du client "+client.getAttribute("nom")+" est : "+ somme);
     
                }
            }
        }

  20. #20
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Tu aurais pu préciser le problème, genre que ça ne compile pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int montant = Integer.parseInt(transaction.getAttribut("montant"));
    la méthode c'est getAttribute(), pas getAttribut(). Et normalement, tu dois avoir un message d'erreur qui l'explicite clairement.

    Par ailleurs, ces lignes ne servent à rien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     NodeList tnom = client.getElementsByTagName("client");
                    Element nom = (Element) tnom.item(0);
    Il n'y a pas d'éléments "client" dans un élément "client", donc item(0) n'existe pas, donc ça retourne null.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

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

Discussions similaires

  1. [XL-2007] Extraire des données d'un fichier Xml avec des balises identiques
    Par Danieldu54 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/03/2011, 20h45
  2. Recuperation des noeuds d'un fichier xml avec xalan
    Par bellemlih dans le forum XML
    Réponses: 1
    Dernier message: 02/07/2008, 18h58
  3. [DOM] Php5 : créer un fichier xml avec Dom
    Par devadh dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 29/01/2007, 14h04
  4. [DOM] Comment generer ce fichier XML avec DOM ?
    Par jlassira dans le forum Format d'échange (XML, JSON...)
    Réponses: 18
    Dernier message: 10/04/2006, 09h12
  5. [DOM] [Débutant(e)] Modifier un fichier XML avec DOM
    Par macks dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 05/07/2005, 14h13

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