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 texte avec jdom [JDOM]


Sujet :

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

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 6
    Par défaut Modifier texte avec jdom
    Salut.

    Voilà plus d'une semaine que je tente de modifier un fichier xml avec jdom. J'ai trouvé beaucoup d'aide sur plusieurs sites (y compris celui-ci) et je crois que j'y suis presque. Mais j'ai un message d'erreur, j'espère que vous pourrez m'aider.

    Voilà mon fichier xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0" encoding="UTF-8"?>
    <connexion>
      <orphy>
        <ip>10.129.50.50</ip>
        <port>21</port>
      </orphy>
      <mysql>
        <host>meteo</host>
        <base>meteo</base>
      </mysql>
    </connexion>
    Je souhaite modifier dans cet exemple le texte de l'élément "port".

    Voici le bout de code que j'ai ecrit (qui s'execute en cliquant sur un bouton):
    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
    org.jdom.Document document = null;
    					Element racine = null;
    					String val_port = null;
    					SAXBuilder sxb = new SAXBuilder();
    					try{
    						//On crée un nouveau document JDOM avec en argument le fichier XML
    				        //Le parsing est terminé
    						document = sxb.build(new File("c:/Program Files/MeteoStat2007/connexion.xml"));
    					}
    					catch(Exception jdm) {
    						jdm.printStackTrace();
    					}
    					racine = document.getRootElement();
    					System.out.println(jTFPort.getText());
    					if(! jTFPort.getText().equals("")){
    						val_port = jTFPort.getText();
    						try{
    							racine.getChild("port").setText(val_port);
    						}
    						catch(Exception exp){
    							exp.printStackTrace();
    						}
    						System.out.println("valeur : "+val_port);
    					    try{
    					        XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
    					        sortie.output(document, new FileOutputStream("c:/Program Files/MeteoStat2007/connexion.xml"));
    					    }
    					    catch (Exception ex){
    					    	System.err.println(ex);
    					    }
    					}
    Et voici le message d'erreur :
    java.lang.NullPointerException
    at stat_meteo.meteorologie$1.actionPerformed(meteorologie.java:148)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    La ligne 148 (qui pose probleme) : racine.getChild("port").setText(val_port);

    J'ai déjà posté sur un autre forum, mais sans succès, celui qui a essayé de m'aider n'a pas compris d'où ça venait. S'il vous plait, c'est pour mon projet de fin d'année, et je bloque là dessus! C'est important.

    Merci d'avance.

  2. #2
    Membre émérite Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Par défaut
    Citation Envoyé par thanatos67
    <?xml version="1.0" encoding="UTF-8"?>
    <connexion>
    <orphy>
    <ip>10.129.50.50</ip>
    <port>21</port>
    </orphy>
    <mysql>
    <host>meteo</host>
    <base>meteo</base>
    </mysql>
    </connexion>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Element racine = document.getRootElement(); // balise <connexion>
    // racine.getChild("port") est NULL !
    Element filsDeRacine = racine.getChild("orphy"); // balise <orphy>
    Element petitFilsDeRacine = filsDeRacine.getChild("port"); // balise <port>

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 6
    Par défaut
    SALUT !!!

    OUAOUUUUU...(en train de danser dans la chambre)
    Super. Merci beaucoup. Tu me sors une épine du pied.
    Et en même temps l'explication est claire. Ca va m'aider, d'autant que je dois faire la même chose pour les autres éléments.

    Encore merci pour cette réponse rapide!!

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

Discussions similaires

  1. rechercher modifier texte avec xslt
    Par CouicCouic dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 19/12/2011, 17h50
  2. Modifier une zone de texte avec VBA dans powerpoint
    Par Akerman dans le forum VBA PowerPoint
    Réponses: 1
    Dernier message: 21/12/2009, 06h05
  3. Modifier un fichier text avec bash
    Par kazylax dans le forum Linux
    Réponses: 2
    Dernier message: 28/11/2009, 17h04
  4. modifier le type d'un input de file à texte avec IE
    Par damjal dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/09/2008, 16h50
  5. Modifier un champs texte avec une fonction PHP (calcul TVA)
    Par Stella2809 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/11/2005, 00h55

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