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 :

Problème d'ecriture dans un fichier XML [JDOM]


Sujet :

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

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2008
    Messages : 101
    Par défaut Problème d'ecriture dans un fichier XML
    Bonjours à tous,
    alors voila, j'ai un fichier XML ou je veut écrire le resultats de quelque test.
    La structure du fichier est:
    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
    <sites>
    		<site>
    			<nom>Casa port</nom>
    			<VpnIp>VPNLL00403</VpnIp>
    			<debit>2000</debit>
    			<ip>19.0.0.129</ip>
    			<test>
    				<date>
    					<jours></jours>
    					<heure></heure>
    				</date>
    				<resultat></resultat>
    			</test>
    		</site>
    	</sites>
    Et voici la méthode qui va me permettre d'écrire dans ce fichier (en principe!!):
    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
    public void resultIntoXML(ArrayList<TestResult> results){
     
    		SAXBuilder sxb= new SAXBuilder();
    		Iterator<TestResult> i= results.iterator();
    		while(i.hasNext()){
    			try{
    				//lecture du resultat courant
    				TestResult result= i.next();
    				//lecture du fichier testLigne.xml et initialisation des variables
    				final Document document;
    				final Element racine;
    				document = sxb.build(new File("testLigne.xml"));
    				racine= document.getRootElement();
    				List<String> sites= racine.getChildren("site");
    				Iterator j= sites.iterator();
    				while (j.hasNext()) {
    					Element courant= (Element)j.next();
    					//filtrer le bon site grace à l'@ip
    					if(result.getSite().getIp()==courant.getChild("ip").toString()){
    						//écriture du contenu du test encapsulé dans la var result
    						Element test= courant.getChild("test");
    						test.getChild("date").setText(result.getDate().toString());
    						test.getChild("resultat").setText(result.getResult().toString());
     //cette méthode permet d'enregistrer les modifications
                             enregistrerFichier("testLigne.xml");
    					}
    				} 
     
    			}catch (Exception e) {
    				// TODO: handle exception
    			}
    		}
     
    	}
    Dans le main, j'exécute cette methode mais le fichier ne change pas. Est ce que quelqu'un voit de quoi ca peut s'agir

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Par défaut
    Et le code de "enregistrerFichier()", c'est quoi?

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2008
    Messages : 101
    Par défaut
    Voiçi le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    static void enregistreFichier(Document document,String fichier) throws Exception
    	{
    	XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
    	sortie.output(document, new FileOutputStream(fichier));
    	}

  4. #4
    Membre expérimenté
    Profil pro
    Dev NodeJS
    Inscrit en
    Août 2006
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev NodeJS

    Informations forums :
    Inscription : Août 2006
    Messages : 177
    Par défaut
    Es-tu sûr qu'aucune exception n'est lancée? (tu ne les traite pas...)

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2008
    Messages : 101
    Par défaut
    non y'a aucune exception, tout marche sauf cette méthode.

  6. #6
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(result.getSite().getIp()==courant.getChild("ip").toString()
    -Déjà utiliser la méthode equals de String ici ça va aider...

    -Après à chaque itération de results tu écrases le même fichier...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    List<String> sites= racine.getChildren("site");
    				Iterator j= sites.iterator();
    				while (j.hasNext()) {
    					Element courant= (Element)j.next();
    -sites est une simple liste de chaine, ce qui fait que ce que tu obtiens par ton iterator ne sont que de simples String détachés du contexte XML, ce cast en Element c'est déjà presque de la science-fiction que ça plante pas. Et il est clair que modifier ces chaînes ne va rien changer aux objets d'origine.

  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2008
    Messages : 101
    Par défaut
    Bonjour a tous,
    voila, je bloque depuis hier sur ce problème et je ne voit toujours pas de solution.
    J'ai bien chercher des tutoriels sur Jdom mais mes recherches n'ont pas été très concluante.
    Si quelqu'un peut me conseiller un bon tutoriel (anglais ou français) qui pourrait m'aider à voir plus claire, ça serai sympa . Et si quelqu'un à la solution ç a serai encore plus sympa .
    Merci à tous

  8. #8
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    La façon la plus simple à mon goût de bosser avec des fichiers XML (lecture et écriture) est de créer un schéma XSD et de générer les classes de manipulation avec XMLBeans.
    Mais c'est déjà assez avancé, je te conseille pas de partir là dedans avant d'avoir bien compris comment le xml se manipule. Mais c'est une solution très élégante.

    Sinon tu as quelques tutos :
    http://cynober.developpez.com/tutoriel/java/xml/jdom/

  9. #9
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2008
    Messages : 101
    Par défaut
    salut à tous,
    voila j'ai résolu mon problème mais en changeant la manière de l'approcher.
    Je posterai le code très bientôt pour qui çà peut interéser.
    Merci pour vos réponses.

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

Discussions similaires

  1. Ecriture dans un fichier XML de beaucoup beaucoup de données
    Par sebastien2222 dans le forum Persistance des données
    Réponses: 8
    Dernier message: 10/08/2006, 09h39
  2. Problème de lecture dans un fichier xml
    Par Pyra dans le forum Langage
    Réponses: 2
    Dernier message: 18/12/2005, 00h13
  3. Problème d'écriture dans un fichier xml
    Par vanoou dans le forum C++Builder
    Réponses: 1
    Dernier message: 13/07/2005, 02h28
  4. [C#] Probleme d'écriture dans un fichier XML
    Par Joad dans le forum ASP.NET
    Réponses: 5
    Dernier message: 02/05/2005, 16h19
  5. Réponses: 2
    Dernier message: 01/06/2004, 12h47

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