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 :

comment écrire dans un fichier xml sans écraser son contenu [JDOM]


Sujet :

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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de solawe
    Inscrit en
    Juillet 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juillet 2006
    Messages : 368
    Par défaut comment écrire dans un fichier xml sans écraser son contenu
    Bonjour tout le monde,

    je cherche une fonction jdom pour écrire dans un fichier xml sans écraser son contenu;

    les bouts de codes que je trouve sur internet font écraser les anciennes informations contenues dans mon fichier.

    merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2008
    Messages : 19
    Par défaut
    la méthode addContent(Element) te permet d'ajouter un élément. tu peux donc ajouter du contenu sans effacer les anciennes données. si je ne réponds pas à ta question, donne un exemple (en XML) de ce que tu voudrais faire.

  3. #3
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 66
    Par défaut exemple complet
    Salut,
    suposons que tu a le fichier .xml suivant:
    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="UTF-8"?>
    <films>
      <film>
        <numero>1</numero>
        <titre>film1</titre>
        <auteur>auteur</auteur>
        <genre>Culture</genre>
        <pays>pays</pays>
        <date>19/12/2007</date>
        <heure>00:00</heure>
        <description>ceci est la description...</description>
      </film>
    </films>
    et que tu veux ajouter une nouvelle film(avec tout les détail) donc le classe java suivant peut t'aider de faire ça,sans écraser le contenu de votre 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
    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
     
    import java.io.*;
    import org.jdom.*;
    import org.jdom.input.*;
    import org.jdom.output.*;
    import java.util.List;
    import java.util.Iterator;
     
    public class AddFilm{
         private Element racine ;
         private Document document;
         //les parametres du requette
         private String num;
         private String titre;
         private String auteur;
         private String date;
         private String genre;
         private String pays;
         private String heure;
         private String minute;
         private String description;
         //le ficher conerné par ce traitement
         private String fichierXml="chemin ou se trouve votre fichier xml";
         public boolean Ajout(){
         try{
         lireFichier(fichierXml);
         if(!filmExist()){
            ajouter();
         }else{
            modifier();
         }
         enregistreFichier(fichierXml);
          return true;
         }catch(Exception e){}
         return false;
         }
         //On parse le fichier et on initialise la racine de
    //notre arborescence
    public void lireFichier(String fichier) throws Exception
    {
    SAXBuilder sxb = new SAXBuilder();
    document = sxb.build(new File(fichier));
    racine = document.getRootElement();
    }
    //On enregsitre notre nouvelle arborescence dans le fichier
    //d'origine dans un format classique.
    public void enregistreFichier(String fichier) throws Exception
    {
    XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
    sortie.output(document, new FileOutputStream(fichier));
    }
    //methode ajoute dans un fichier xml
    public void ajouter(){
      Element film=new Element("film");
    //le numero du film
      Element number=new Element("numero");
      number.setText(num);
      film.addContent(number);
      racine.addContent(film);
      //le nom du film
      Element n=new Element("titre");
      n.setText(titre);
      film.addContent(n);
      //l'auteur du film 
      Element auteurtag=new Element("auteur");
      auteurtag.setText(auteur);
      film.addContent(auteurtag);
    //le genre du film
      Element genretag=new Element("genre");
      genretag.setText(genre);
      film.addContent(genretag); 
    //le pays du film
      Element paystag=new Element("pays");
      paystag.setText(pays);
      film.addContent(paystag); 
    //date du film
      Element datetag=new Element("date");
      datetag.setText(date);
      film.addContent(datetag);
    //l'heue de diffusion du film
      Element heuretag=new Element("heure");
      heuretag.setText(heure+":"+minute);
      film.addContent(heuretag);  
    //la description du film
      Element descriptiontag=new Element("description");
      descriptiontag.setText(description);
      film.addContent(descriptiontag);
    }
    /////////////////////////////////////////////////////: les getters et setters :///////////////////////////////////////////
     public String getTitre(){
     return titre;
     }
     public void setTitre(String titre){
     this.titre=titre;
     }
     public String getAuteure(){
     return auteur;
     }
     public void setAuteur(String auteur){
     this.auteur=auteur;
     }
     public String getGenre(){
     return genre;
     }
     public void setGenre(String genre){
     this.genre=genre;
     }
     public String getDescription(){
     return description;
     }
     public void setDescription(String description){
     this.description=description;
     }
    public String getPays(){
      return pays;
    }
    public void setPays(String pays){
      this.pays=pays;
    }
    public String getMinute(){
      return minute;
    }
    public void setMinute(String minute){
      this.minute=minute;
    }
    public String getDate(){
      return date;
    }
    public void setDate(String date){
      this.date=date;
    }
    public String getHeure(){
      return heure;
    }
    public void setHeure(String heure){
      this.heure=heure;
    }
     
    public String getNum(){
      return num;
    }
    public void setNum(String num){
      this.num=num;
    }
    //////////////////////////// cette methode permet de verifier si un film exite deja ou non   /////////////////////
    public boolean filmExist(){
         //Element j=racine.getChild(jour);
          //On crée une List contenant tous les noeuds "numero" de l'Element jour
         List listFilms = racine.getChildren("film");
         if(listFilms.isEmpty())
           return false;
        //On crée un Iterator sur notre liste
        Iterator i = listFilms.iterator();
        while(i.hasNext())
        {
     
           Element courant = (Element)i.next();
         //On affiche le nom de l'element courant
           if(courant.getChild("numero").getTextTrim().equals(num))
            return true;
        }
           return false;
    }
    //////////////////////////////: cette methode permet de faire la mise à jour du film dans le cas ou il existe deja/////////////////////
    public void modifier(){
         List listFilms = racine.getChildren("film");
        //On crée un Iterator sur notre liste
        Iterator i = listFilms.iterator();
        while(i.hasNext())
        {
               Element courant = (Element)i.next();
     
         //On affiche le nom de l'element courant
           if(courant.getChild("numero").getTextTrim().equals(num))
            {
              courant.getChild("titre").setText(titre);
              courant.getChild("auteur").setText(auteur);
              courant.getChild("genre").setText(genre);
              courant.getChild("pays").setText(pays);
              courant.getChild("date").setText(date);
              courant.getChild("heure").setText(heure+":"+minute);
              courant.getChild("description").setText(description);
                  return;
             }
        }
    }
    }

  4. #4
    Membre éclairé Avatar de solawe
    Inscrit en
    Juillet 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juillet 2006
    Messages : 368
    Par défaut
    merci pour vous tous pour l'aide

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/06/2011, 17h35
  2. Ecrire dans un fichier XML sans écraser
    Par momjunior dans le forum Format d'échange (XML, JSON...)
    Réponses: 7
    Dernier message: 05/12/2009, 12h45
  3. Comment écrire dans un fichier texte sans sauter les lignes
    Par gogéta91 dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 29/07/2008, 18h56
  4. Comment écrire dans un fichier sans tout effacer
    Par mundu dans le forum Général Python
    Réponses: 7
    Dernier message: 10/03/2008, 09h52
  5. [DOM XML] Comment écrire dans un fichier XML ?
    Par morgiane dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 14/11/2006, 11h32

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