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 :

Ajout d'un élément dans un fichier xml [JDOM]


Sujet :

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

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 41
    Points
    41
    Par défaut Ajout d'un élément dans un fichier xml
    Bonjour, je souhaiterai écrire un code pour pouvoir ajouter de nouveaux éléments dans mon fichier xml.

    Voici mon fichier xml :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <MRacine>
        <type valeur="">
                <intitule/>
                <couleur/>
        </type>
    </MRacine>
    Je souhaiterai ajouter un élément "nouveau" entre les balises <type>, au meme titre que intitule et couleur.

    Voici mon code :

    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
    public class testAjout{
     
        static org.jdom.Document document;
        static Element racine;
        static Element type;
     
    public static void main (String[] args){
            try{
            lireFichier("G:\\test.xml");
            addElement("nouveau");
            enregistreFichier("G:\\test3.xml");
            }
            catch(Exception e){}
        }
     
        static void lireFichier(String fichier) throws Exception{
          SAXBuilder sxb = new SAXBuilder();
          document = sxb.build(new File(fichier));
          racine = document.getRootElement();
        }
     
        static void addElement(String element){
            racine.addContent(type);
            Element nouveau1=new Element ("nouveau");
            type.addContent(nouveau1);
        }
         static void enregistreFichier(String fichier) throws Exception
       {
             XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
             sortie.output(document, new FileOutputStream(fichier));
     
       }
    }
    Mais ça ne fait rien. Qu'est-ce qui ne va pas ?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Points : 909
    Points
    909
    Par défaut
    La première chose qui ne va pas, c'est cette ligne abominable () :
    Citation Envoyé par bidulee Voir le message
    S'il se produit une erreur lors de l'exécution, tu l'interceptes et tu ne fais rien.
    Et donc tu ne sais pas ce qui s'est passé, tu ne sais même pas qu'il y a eu une erreur.
    Et donc tu crois que "ça ne fait rien" alors qu'en fait il se passe des tas de choses...

    Le minimum serait de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    catch(Exception e){
       System.out.println(e);
    }
    histoire de voir quelle est l'erreur.


    En affichant l'erreur, tu pourras lire :
    org.jdom.IllegalAddException: Cannot add null object
    Et voilà, tu as ton explication.
    Dans l'instruction racine.addContent(type); tu essaies d'ajouter un élément qui n'a jamais été initialisé.


    De façon générale, évite les throws Exception et catch Exception, il vaut mieux être le plus précis possible sur le type des exceptions lancées/interceptées.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 41
    Points
    41
    Par défaut
    Ok, maintenant ça fonctionne. Merci beaucoup

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 41
    Points
    41
    Par défaut
    L'ajout fonctionne mais en fait, ça ne met pas l'élément là où je le voudrai.
    Il se met dans une nouvelle balise <type> alors que je voudrai le mettre dans la meme, juste à la suite de intitule et couleur.
    Comment dois-je faire ?

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

Discussions similaires

  1. [JDOM] Ajouter des éléments dans un fichier XML
    Par pitchu dans le forum Format d'échange (XML, JSON...)
    Réponses: 14
    Dernier message: 25/12/2015, 10h06
  2. Ajout d'un element dans un fichier XML
    Par vacknov dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/08/2007, 10h26
  3. [XPATH] Récupérer un élément dans un fichier XML
    Par be_tnt dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 07/06/2007, 19h49
  4. Comment ajouter un élément dans un fichier XML
    Par sorilazer dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 04/06/2007, 21h56
  5. Réponses: 14
    Dernier message: 01/12/2003, 17h47

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