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 :

Supprimer des données dans un xml


Sujet :

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

  1. #1
    Membre habitué Avatar de pingoui
    Homme Profil pro
    Activité professionnelle sans liens avec le developpement
    Inscrit en
    Juillet 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Activité professionnelle sans liens avec le developpement
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 582
    Points : 185
    Points
    185
    Par défaut Supprimer des données dans un xml
    Bonjour,

    J'ai un HashMap qui me permet stocker (si je peux employer ce terme) les données après le parsing d'un fichier.xml

    J'ai un code qui me permet de modifier les données dans mon fichier xml

    ModifierBaseAnnee.java
    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
     
    public class ModifierBaseAnnee { 
     
           void editBaseAnnee() { 
     
              Annee lecture = Annee.lire(2005); 
              //Methode pour récupérer un canari par son nom 
              // Initialisation du dico HashMap dico = lecture.getDico(); 
              canari unCanari = (canari)dico.remove("titi"); 
             //Au cas où j'aurais pas de canari prénommé Titi. 
              if(unCanari!=null) {  
                 unCanari.setNom("grosMinet"); // changement du nom par exemple (titi devient grosMinet ;-)) 
                 dico.put(unCanari.getNom(),unCanari); 
                 lecture.ecrire();// enregistrement de la modification dans le fichier xml 
             } 
        }    
    }
    J'aimerai m'inspirer de ce code pour supprimer un enregistrement
    Quelle est la commande qui permet de supprimer un enregistrement?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 85
    Points : 102
    Points
    102
    Par défaut
    (Re)Salut,

    Pour supprimer un élément :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dico.remove(nomDuCanari);

  3. #3
    Membre habitué Avatar de pingoui
    Homme Profil pro
    Activité professionnelle sans liens avec le developpement
    Inscrit en
    Juillet 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Activité professionnelle sans liens avec le developpement
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 582
    Points : 185
    Points
    185
    Par défaut
    il va juste supprimer le nom du canari et pas l'enregistrement en entier?

  4. #4
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Il va supprimer l'enregistrement qui correspond a la cle nomDuCanari dans ton dico.
    Donc dans ton dico t'auras plus "d'entrée" associé a ce nom.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 85
    Points : 102
    Points
    102
    Par défaut
    Oui et non : il va supprimer le mapping entre le nom du canari et l'objet canari. Donc l'objet canari de ta HashMap sera inaccessible donc pô enregistré.

    Par contre, je crois que ton enregistrement se fait à partir d'une autre liste, dans ce cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Canari unCanari = (Canari)dico.remove(nomDuCanari);
    taList.remove(unCanari);
    Comme ça ton canari est supprimé de ton dico et de ta liste.

  6. #6
    Membre habitué Avatar de pingoui
    Homme Profil pro
    Activité professionnelle sans liens avec le developpement
    Inscrit en
    Juillet 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Activité professionnelle sans liens avec le developpement
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 582
    Points : 185
    Points
    185
    Par défaut
    Ma liste s'appelle "listeCanaris" et se trouve dans la class Canaris

    Je fais ça?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Canari unCanari = (Canari)dico.remove("titi"); 
    listeCanaris.remove(unCanari);

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 85
    Points : 102
    Points
    102
    Par défaut
    Voui

  8. #8
    Membre habitué Avatar de pingoui
    Homme Profil pro
    Activité professionnelle sans liens avec le developpement
    Inscrit en
    Juillet 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Activité professionnelle sans liens avec le developpement
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 582
    Points : 185
    Points
    185
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    listeCanaris cannot be resolved

  9. #9
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Citation Envoyé par pingoui
    Ma liste s'appelle "listeCanaris" et se trouve dans la class Canaris

    Je fais ça?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Canari unCanari = (Canari)dico.remove("titi"); 
    listeCanaris.remove(unCanari);
    T'as un objet Canaris sous la main dans ta classe modifierBaseAnnee, parceque sinon comment veux tu que le prog sache ce que c'est listeCanaris

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 85
    Points : 102
    Points
    102
    Par défaut
    OK, là c'est juste un problème d'accès. Tu peux pas avoir accès à ta liste directement depuis une autre classe que celle où elle est définie si tu l'a déclarée private. Il faut que tu passe par la méthode qui te retourne la liste de la classe Annee, ou la créer si elle existe pas.

  11. #11
    Membre habitué Avatar de pingoui
    Homme Profil pro
    Activité professionnelle sans liens avec le developpement
    Inscrit en
    Juillet 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Activité professionnelle sans liens avec le developpement
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 582
    Points : 185
    Points
    185
    Par défaut
    voilà le code pour supprimer un enregistrement

    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
     
    import java.util.HashMap;
     
    public class DeleteCanari {
     
    	 void deleteCanari() { 
     
            Annee lecture = Annee.lire(2005); 
            //Methode pour récupérer un canari par son nom 
            // Initialisation du dico 
     
            HashMap dico = lecture.getDico(); 
            Canari unCanari = (Canari)dico.remove("titi"); 
            lecture.remove(unCanari); 
     
          //Au cas où t'aurais pas de canari prénommé Titi. 
          if(unCanari!=null) {  
               lecture.ecrire();// enregistrement de la modification dans le fichier xml 
           } 
      } 
    }

    J'ai désormais cette erreu:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    The method remove(Canari) is undefined for the type Annee

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 85
    Points : 102
    Points
    102
    Par défaut
    Bon, de manière générale, ce genre d'erreurs, comme son nom l'indique, veut dire que la méthode est pas définie. Ton objet lecture est de type Annee, pas de type List, donc faut que tu définisse la méthode remove si tu veux l'appeler.

  13. #13
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Dans ta classe Annee fait une methode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public void remove(Canari canari){
      annee.remove(canari);
    }

  14. #14
    Membre habitué Avatar de pingoui
    Homme Profil pro
    Activité professionnelle sans liens avec le developpement
    Inscrit en
    Juillet 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Activité professionnelle sans liens avec le developpement
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 582
    Points : 185
    Points
    185
    Par défaut
    C'est ce que je viens de faire.... je comence à piger

  15. #15
    Membre habitué Avatar de pingoui
    Homme Profil pro
    Activité professionnelle sans liens avec le developpement
    Inscrit en
    Juillet 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Activité professionnelle sans liens avec le developpement
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 582
    Points : 185
    Points
    185
    Par défaut
    Il n'y a pas de bugs signalés sauf que ça ne fait rien

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 85
    Points : 102
    Points
    102
    Par défaut
    QU'est-ce que tu veux dire exactement par ça ne fait rien ?? Quand tu réécris le fichier XML, l'enregistrement est pas supprimé ??

  17. #17
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Citation Envoyé par pingoui
    Il n'y a pas de bugs signalés sauf que ça ne fait rien
    Comment sais tu que ca fait rien T'as verifier si l'enregistrement a été supprimé :

  18. #18
    Membre habitué Avatar de pingoui
    Homme Profil pro
    Activité professionnelle sans liens avec le developpement
    Inscrit en
    Juillet 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Activité professionnelle sans liens avec le developpement
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 582
    Points : 185
    Points
    185
    Par défaut
    oui, l'enregistrement n'a pas été supprimé

  19. #19
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Supprimé ni dans le dico ni dans ta liste annee :

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 85
    Points : 102
    Points
    102
    Par défaut
    Euh, t'aurais pas oublié d'initialiser le dico par hasard ? Essaye de voir si un System.out.println(unCanari) après le if te sort pas : null.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Inserer des données dans fichier Xml
    Par Logarythme dans le forum InfoPath
    Réponses: 3
    Dernier message: 28/02/2008, 08h35
  2. supprimer des données dans plusieurs tables
    Par mnssylvain dans le forum Access
    Réponses: 4
    Dernier message: 28/01/2007, 19h06
  3. Récupérer des données dans un .XML
    Par Lootro dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 20/08/2006, 22h38
  4. Remplacer / Supprimer des données dans un fichier txt
    Par PedroBD dans le forum Langage
    Réponses: 3
    Dernier message: 03/07/2006, 13h33
  5. [MySQL] supprimer des données dans la base
    Par Commodore dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 07/02/2006, 02h43

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