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 :

Programme qui met à jour l'inventaire [DOM]


Sujet :

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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    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
    Par défaut Programme qui met à jour l'inventaire
    Bonjour,
    j'ai un fichier achats.txt :
    Jean Charles, 3214324565, 321, 2
    Yvan Richard, 5435435545, 321, 1
    Yvette Gagnon, 4324324243, 1, 12
    est un fichier inventaire.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?xml version="1.0" encoding="ISO-8859-1"?>
     <inventaire>
     <produit code="1" prix="432.00" quantité= "43" />
     <produit code="32" prix="32.00" quantité= "100"  />
     <produit code="321" prix="31.00" quantité= "200"  />
     </inventaire>
    on mettant a jour mon fichier inventaire.xml a partir du fichier achats.txt alors que mon résultat sois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?xml version="1.0" encoding="ISO-8859-1"?>
     <inventaire>
     <produit code="1" prix="432.00" quantité= "31" />
     <produit code="32" prix="32.00" quantité= "100"  />
     <produit code="321" prix="31.00" quantité= "197"  />
     </inventaire>
    mon programme java et :
    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
     import org.w3c.dom.*;
     import java.io.*;
     import javax.xml.parsers.*;
     import javax.xml.transform.*;
     import javax.xml.transform.dom.*;
     import javax.xml.transform.stream.*;
     
     public class inventaire {
        public static void main(String[] args) throws Exception {
        DocumentBuilderFactory factory = 
         DocumentBuilderFactory.newInstance();
        factory.setNamespaceAware(true);
        DocumentBuilder parser = 
         factory.newDocumentBuilder();
        Document doc = parser.parse("inventaire.xml");
        Element racine = doc.getDocumentElement();
        NodeList nl = racine.getChildNodes();
        if (args[0].equals("ajoute")) {
         boolean ajout = false;
           for (int k = 0; k < nl.getLength(); ++k) {
              if(nl.item(k).getNodeType()==Node.ELEMENT_NODE) {
                 Element e = (Element) nl.item(k);
                 if(e.getAttribute("code").equals(args[1])) {
                    e.setAttribute("quantité",args[2]);
                    ajout=true;
                 }
              }
           }
           if( ! ajout) {
             Element p = doc.createElement("produit");
             p.setAttribute("code", args[1]);
             p.setAttribute("quantité", args[2]);
             racine.appendChild(p);
         }
        }
        TransformerFactory tfact = TransformerFactory.newInstance();
        Transformer transformer = tfact.newTransformer();
        transformer.setOutputProperty("encoding", "ISO-8859-1");
        DOMSource source = new DOMSource(doc);
        FileWriter fw = new FileWriter("inventaire.xml");
        StreamResult result = new StreamResult(fw);    
        transformer.transform(source, result);
        }
     }
    mes j'arrive pas a avoir le bon résultat merci pour votre aide .

  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
    Et c'est quoi le résultat obtenu et le résultat voulu ?

    Parce que là je ne vois pas où tu fais intervenir le fichier achats.txt

    Par ailleurs, je te conseille d'utiliser JDOM au lieu du DOM de base. JDOM est beaucoup plus simple à manipuler.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    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
    Par défaut
    quand j'exécute la fonction java Inventaire achats.txt inventaire.xml mon résultat et le même que au début alors y' a pas de modification pour le fichier inventaire.xml , malheureusement je peut pas l'utiliser dans ce programme las .
    merci pour votre aide.

  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
    Normal puisque "args[0]" n'est lu qu'une seule fois, et que c'est pour comparer s'il est égal à "ajoute". Ce qui n'est pas le cas puisqu'avec ta commande, il est égal à "achats.txt".

    Quand ce n'est pas le cas le programme ne fait rien.

    Logiquement tu devrais le savoir puisque c'est toi qui l'as fait ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre averti
    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
    Par défaut
    j'ai vraiment pas compris ce que vous vêler dire exactement

  6. #6
    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
    ... Je te parle du code Java que tu nous as montré quelques posts au-dessus. Tu te souviens ?

    args[0], tu vois ce que c'est ?

    C'est quelle partie de ce que je dis que tu comprends pas, et qu'est-ce qui commence à s'embrouiller dans ta tête quand tu le vois ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre averti
    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
    Par défaut
    Merci pour votre aide problème résolus

  8. #8
    Membre à l'essai
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Mars 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2012
    Messages : 5
    Par défaut
    Bonjour Jean,

    J'aurais bien aimé que tu donne la solution. En effet, quand on voit un sujet marqué "Résolu", mais qui ne contient pas la solution.... c'est frustrant.

    Merci à toi de nous faire part de ta solution.

  9. #9
    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
    À ta place je ne le croirais pas quand il dit qu'il a trouvé la solution : à la rigueur il a peut-être copié un code qui marche de son petit camarade de classe. Mais il ne comprenait rien à ce que ça faisait et il y a de bonnes chances que le prof s'en soit rendu compte.

    Manifestement tu veux la même chose, dommage pour toi.
    La solution c'est d'apprendre comment marche XML, apprendre comment marche CSV, et relier les deux. Il n'y a pas à chercher des choses bizarres, juste à travailler.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 5
    Par défaut
    Je fais face au même exercices et ça fait des jours que je tourne en rond. J'ai fait plusieurs tutorial mais je trouve aucun pour m'aider à comprendre comment mettre à jour mon fichier XML avec des données de mon fichier .txt.

    Est-ce qu'on pourrait m'enligner vers un tutorial? Ou me guider comment insérer mon fichier text et le faire lire.

  11. #11
    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
    Un tutoriel ne peut pas faire l'affaire.
    Le découpage est évident : il faut d'abord prendre les données qui sont dans le fichier .txt, puis une fois que tu as ces données, les mettre dans le fichier XML.
    Comme les deux étapes n'ont rien à voir, il n'existe pas un tutoriel qui parle des deux, ça n'aurait aucun sens.

    Tu dois apprendre à faire chaque étape séparément. Puis il n'y a plus qu'à relier les deux.
    Tu veux commencer par laquelle ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. JButton qui met à jour un JLabel, possible ?
    Par nikwik dans le forum Débuter
    Réponses: 4
    Dernier message: 15/01/2011, 12h30
  2. Réponses: 0
    Dernier message: 18/08/2010, 20h01
  3. Macro qui met à jour un Workbook à partir d'un autre
    Par Sanny80 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/11/2009, 09h31
  4. Réponses: 2
    Dernier message: 11/08/2006, 11h11
  5. Réponses: 5
    Dernier message: 25/11/2003, 09h41

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