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 :

création fichier xml


Sujet :

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

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 296
    Points : 144
    Points
    144
    Par défaut création fichier xml
    Bonsoir

    J'ai récupérer le code sur un tutoriel pour créer un fichier xml avec JDOM
    et j'aimerai savoir comment faire pour être sur de ne pas le recréer et donc
    de l'écraser. Peut on faire un truc un peu comme un singleton pour pouvoir une fois qu'il est créer détecter qu'il est créer et non écraser l'ancien
    voici le bout de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    		try
    		{
    //		On utilise ici un affichage classique avec getPrettyFormat()
    		XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
    //		Remarquez qu'il suffit simplement de créer une instance de FileOutputStream
    //		avec en argument le nom du fichier pour effectuer la sérialisation.
    		sortie.output(document, new FileOutputStream("base.xml"));
    		}
    		catch (java.io.IOException e){}
    		}
    Merci

  2. #2
    Membre averti Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Points : 312
    Points
    312
    Par défaut
    Tu fais ca :

    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
     
    File file = new File("base.xml");
    if (!file.exists()) {//si le ficheir n'existe pas
          try
    		{
    //		On utilise ici un affichage classique avec getPrettyFormat()
    		XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
    //		Remarquez qu'il suffit simplement de créer une instance de FileOutputStream
    //		avec en argument le nom du fichier pour effectuer la sérialisation.
    		sortie.output(document, new FileOutputStream("base.xml"));
    		}
    		catch (java.io.IOException e){}
    		}
     
    }

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 296
    Points : 144
    Points
    144
    Par défaut
    Le problème c'est que une fois le fichier créer et écrit.
    Je ne peu plus rajouter des nouveaux noeuds xml à la suite.
    c'est vrai que la je n'écrase pas mes anciens noeuds mais je ne peu pas en rajouter

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 296
    Points : 144
    Points
    144
    Par défaut
    Quelqu'un aurait pas une idée pour écrire de nouveau élément dans un fichier
    xml existant ?
    faut il faire un truc pour détecter le dernier élément et pouvoir écrire après ?

  5. #5
    Membre averti Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Points : 312
    Points
    312
    Par défaut
    Il existe des API Java pour parser des fichier XML. Regarde du côté de SAX et JDOM. Une fois que tu as parsé un fichier, tu peux ajouter, modifier ou supprimer des noeuds puis sauvegarder ton fichier

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 296
    Points : 144
    Points
    144
    Par défaut
    J'ai mon fichier chansons.xml qui a cette structure:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0" encoding="UTF-8"?>
    <CHANSONS>
      <chanson>
        <titre>le petit bonhomme en mousse</titre>
        <auteur>inconnu<auteur>
        <contenu>le petit bonhomme en mousse............</contenu>
      </chanson>
    </CHANSONS>
    pour rajouter une chanson je lis mon fichier à l'aide de cette méthode:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    static void lireFichier() throws Exception
    	   {
    	      SAXBuilder sxb = new SAXBuilder();
    	      document = sxb.build(new File("chansons.xml"));
    	      racine = document.getRootElement();
    	   }
    et ensuite je ne sais comment rajouter une chanson sans écraser celle qui est déjà dans le fichier, si quelqu'un pouvait m'aider car je galère dur

  7. #7
    Membre averti Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Points : 312
    Points
    312
    Par défaut
    Moi perso je ferais comme ca (je t'ai fais une classe executable, mais tu peux simplement récupérer le contenu de la méthode "main()"


    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
     
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.Properties;
     
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.transform.OutputKeys;
     
    import org.w3c.dom.DOMException;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.xml.sax.SAXException;
     
    import com.sun.org.apache.xml.internal.serializer.OutputPropertiesFactory;
    import com.sun.org.apache.xml.internal.serializer.Serializer;
    import com.sun.org.apache.xml.internal.serializer.SerializerFactory;
     
     
     
    public class Test {
         public static void main(String[] args) {
           try {
                File monFichier = new File("C:/aaa.xml");
                DocumentBuilderFactory docBuildFactory = DocumentBuilderFactory.newInstance();
                DocumentBuilder parser = docBuildFactory.newDocumentBuilder();
                Document document = parser.parse(monFichier);
                Element racine = document.getDocumentElement();
                Element chanson = document.createElement("chanson");
                Element titre = document.createElement("titre");
                titre.setTextContent("MonTitre");
                Element auteur = document.createElement("auteur");
                auteur.setTextContent("MonAuteur");
                Element contenu = document.createElement("contenu");
                contenu.setTextContent("MonContenu");
                chanson.appendChild(titre);
                chanson.appendChild(auteur);
                chanson.appendChild(contenu);
                racine.appendChild(chanson);
     
                Properties OP =  OutputPropertiesFactory.getDefaultMethodProperties("xml");
                OP.setProperty(OutputKeys.METHOD,"xml");
                OP.setProperty(OutputKeys.INDENT,"yes");
                OP.setProperty(OutputKeys.ENCODING,"UTF-8");
                Serializer serializer = SerializerFactory.getSerializer (OP);
                serializer.setOutputStream(new FileOutputStream(monFichier));
                serializer.asDOMSerializer().serialize(document);
     
     
            } catch (DOMException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (ParserConfigurationException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (SAXException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    Et puis fais attention, dans l'exemple que tu as envoyé le fichier comporte une erreur : tu ferme mal la balise "auteur".

    Au fait, tétais pas au collège St Pierre ?

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 296
    Points : 144
    Points
    144
    Par défaut
    Ok merci

    sinon ouais j'étais au collège saint pierre
    pourquoi ? toi aussi

Discussions similaires

  1. [JDOM] création fichier XML & JDOM
    Par nono_13 dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 01/08/2008, 12h13
  2. création fichier XML
    Par TERRIBLE dans le forum C#
    Réponses: 1
    Dernier message: 18/09/2007, 23h29
  3. Création fichier XML
    Par leeloo1902 dans le forum Langage
    Réponses: 5
    Dernier message: 11/06/2007, 22h20
  4. création fichier XML
    Par cyreel dans le forum VC++ .NET
    Réponses: 3
    Dernier message: 10/01/2007, 15h39
  5. Création fichier XML
    Par jaggy19 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 17/10/2006, 17h09

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