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 :

Modifier un fichier XML


Sujet :

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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de dev_2007
    Profil pro
    Inscrit en
    Août 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 98
    Par défaut Modifier un fichier XML
    Bonsoir,
    j'ai un fichier XML, et je veux le modifier pour ajouter des nouveaux fils à une balise donnée,
    par exemple, mon fichier XML ressemble à cela :

    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
     
    <ReservationSalle>
    	<!-- liste des salles -->
    	<Salles>
    		<Salle>
    			<Nom>G101</Nom>
    			<Type>TD</Type>
    			<Materiel>Video prejecteur</Materiel>
    			<NbrPlace>40</NbrPlace>
    		</Salle>
    		<Salle>
    			<Nom>G102</Nom>
    			<Type>TD</Type>
    			<Materiel>Ordinateur</Materiel>
    			<NbrPlace>40</NbrPlace>
    		</Salle>
    <ReservationSalle>
    et je veux soit ajouter une salle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <Salle>
    			<Nom>G400</Nom>
    			<Type>TP</Type>
    			<Materiel>PC</Materiel>
    			<NbrPlace>20</NbrPlace>
    		</Salle>
    soit modifier une salle (soit son nom, son type, son materiel soit le nbrplace)

    j'espère que j'étais clair sur ce que je veux.

    merci d'avance.

    PS : j'ai oublié de préciser que je développe en java avec l'api JDOM.

  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
    - Charger le fichier avec SAXBuilder pour obtenir un Document.
    - Effectuer les modifications sur le Document. (Obtenir l'Elément <ReservationSalle> avec getRootElement(), faire les modifications en lisant la doc de Element.)
    - Enregistrer le Document modifié à la place du fichier chargé, avec XMLOutputter.

    Lire les JavaDoc de tous ces trucs, c'est assez clair. Et le site de JDOM propose des exemples simples.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éprouvé Avatar de dev_2007
    Profil pro
    Inscrit en
    Août 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 98
    Par défaut
    je veux juste savoir est ce que je modifie le fichier lui même ou le document généré , mme probleme pour la sauvegarde, est ce que la sauvegarde se fait dans le fichier XML lui meme ou dans le document?

    merci de me préciser le propos.

  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
    J'ai pas compris. Je ne peux que répéter ce que j'ai dit au-dessus.

    - Tu charges le fichier XML dans un objet Document.

    - C'est le Document que tu modifies. On ne peut pas modifier un fichier XML à la volée.
    Avec un peu d'expérience ça paraît évident : c'est du texte. Si une balise devient plus courte ou plus longue, on fait comment ? On réécrit tout depuis le début. Autant dire que ce n'est pas le fichier, qu'on modifie, mais la représentation qu'on en a en mémoire.

    - Une fois le Document modifié, ce Document est en mémoire mais pas sur disque dur. Il faut donc l'enregistrer dans un fichier XML.
    Tu peux le mettre à la place du fichier qui t'a permis de le charger, ou ailleurs. Comme tu veux. (En réalité, il vaut mieux enregistrer le fichier ailleurs, puis si tout a bien marché, déplacer le fichier créé pour écraser l'ancien fichier.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éprouvé Avatar de dev_2007
    Profil pro
    Inscrit en
    Août 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 98
    Par défaut
    ok, super
    merci

  6. #6
    Membre confirmé Avatar de yaya_la_rafale
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 92
    Par défaut
    En ce qui concerne la modification, puisqu'on ne peut pas modifier une seule valeur, et qu'il faut re-ecrire le fichier XMl en entier, ne serait-il pas plus simple de détruire le fichier existant et de le refaire tout simplement avec les bibliothèques IO fichier ???

    (on est bien d'accord je parle dans le cas où on veut modifier une valeur, exemple nom de la salle, et non pas d'ajouter une nouvelle salle)

    je n'ai trouvé ca fait nulle part..... y a-t-il une raison ??
    y aurait-il des pièges ???


    mon code ressemble ainsi a l'exemple dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    // ON verifie si le fichier existe
    File fichierXML = new File("monfichier.dat");
     
    //Creation du contenu de mon document xml
    createXml(mesDonnees);
     
    if (fichierXML.exists()) {
    	fichierXML.renameTo(new File(Const.FIC_PATIENT+".old"));
    }  
    enregistreFichier("monfichier.dat");

Discussions similaires

  1. [DOM4J] Modifier un Fichier XML
    Par vain_mich dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 20/06/2007, 16h00
  2. [Web] modifier un fichier xml via HTML
    Par cyberfilou dans le forum APIs
    Réponses: 2
    Dernier message: 04/05/2007, 11h12
  3. [XML-XSLT]Modifier un fichier XML grâce à un formulaire
    Par Maurice Fallou dans le forum Langage
    Réponses: 4
    Dernier message: 28/02/2007, 16h57
  4. [VB NET]: Modifier un fichier XML via un DataSet
    Par ADONET dans le forum Windows Forms
    Réponses: 1
    Dernier message: 08/02/2006, 18h54
  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