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 :

Probleme d'ajout d'un noeud a 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 confirmé
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Par défaut Probleme d'ajout d'un noeud a un fichier XML
    Bonjour tout le monde,

    ça fait un bout de temps que j'ai un fichier xml sur le quel j'amerais ajouter un nouveau element directement sous la racine en utilisant l'outil DOM mais ça ne donne rien malheuresment

    voila 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
     
     
    try{ 
              // création d'une fabrique de documents 
              DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance(); 
              // création d'un constructeur de documents 
              DocumentBuilder constructeur = fabrique.newDocumentBuilder(); 
              // lecture du contenu d'un fichier XML avec DOM 
              File xml = new File("C:\\xml\\fihcier.xml"); 
              Document document = constructeur.parse(xml); 
     
               Element racine = document.getDocumentElement();
     
          Element monElement = document.createElement("monelement");
          racine.appendChild(monElement);
    }
    Merci

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Le code m'a l'air correct à première vue. Quelle est l'erreur que tu obtiens?

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 42
    Par défaut
    Citation Envoyé par Viscapon Voir le message
    Bonjour tt le monde,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
              File xml = new File("C:\\xml\\fihcier.xml");
    Effectivement : c'est quoi qui ne fonctionne pas.
    Ton fichier s'appelle fihcier ou fichier ?
    Ensuite tu re-écris bien le document modifié dans un fichier ?
    Si oui es tu sûr qu'il n'y a pas une erreur là ?(tu n'as pas montré le code)

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Par défaut
    Non ce n'est pas un problem consernant le nom du fichier ni le chemin car la lecture du meme fichier retourne un resultat avec succes d'ailleur j'ai essayer sur bcp de fichiers que ça soit "xml" ou "xsd" ça ne genere aucune modification, aucune balise de nouveau à signaler lors de l'execution de mon code .
    Et le plus bizzard c'est que l'execution ne genére aucune erreur ,reste à savoir s'il existe une autre instruction à ajouter(droit de modif par ex),Personnelement j'ai beau chercher mais mon fichier xml rest tjs intacte. En attendant je vais ressayer d'executer mon code en esperant que ça marche ...

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    est-ce que tu "écrit" le dom dans un fichier??!! Parce que là, on a que le code de lecture!

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 42
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Est-ce que tu "écrit" le dom dans un fichier??!! Parce que là, on a que le code de lecture!
    Effectivement le code plus ton post laissent à penser que tu ne fais pas d'écriture ensuite.
    Ce que tu nous as montré ne correspond qu'a création d'un Objet Document en lecture d'un fichier XML, puis a la modification de cet Objet en mémoire.
    Depuis ton Document tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String res = new XMLOutputter(Format.getPrettyFormat()).outputString(document);
    Pour savoir a quoi il ressemble en mémoire.
    Reste à copier la chaîne de caractères dans le fichier de sortie
    http://java.developpez.com/faq/java/...ngage_fichiers

  7. #7
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 233
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    est-ce que tu "écrit" le dom dans un fichier??!! Parce que là, on a que le code de lecture!
    Desole mais la je ne vous suit plus normalemnt le appendchilde se charge de créer un nouveau fils de la racine avec le neoud de l'elemnt="monelement"

    Donc cela veux dir ecrire dans le document une nouvelle balise<monelement>
    qui serait une balise fille de la balise racine .Si j'ai tord veuillez me corriger .Donc d'apres mes connaissance le code que j'ai poster au debut contient une instruction d'ecriture via le appendchild.

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    T'as tord, tu ne fait que modifier le DOM en mémoire. Il est complètement détaché du fichier. Quand tu modifie un DOM, çà va pas magiquement s'écrire sur le fichier, faut l'envoyer sur le fichier après

    Pallando t'as déjà fourni le code.

  9. #9
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 42
    Par défaut
    Citation Envoyé par Viscapon Voir le message
    .Donc d'apres mes connaissance le code que j'ai poster au debut contient une instruction d'ecriture via le appendchild.
    Effectivement tu modifies bien le document. Le problème c'est que ne modifies que l'objet en mémoire.
    Celui-ci est décorélé du fichier depuis lequel tu as lu le XML (dans ton cas C:\xml\fihcier.xml). Les modifications que tu fais sur le Document ne se répercutent pas sur le fichier physique.

    Tu dois donc à la fin écrire ton Objet Document dans un fichier (je te conseille de ne pas écrire dans ton fichier d'entré au départ).
    Pour cela tu peux par exemple créer une string depuis le XML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String res = new XMLOutputter(Format.getPrettyFormat()).outputString(document);
    puis ecrire cette String dans un fichier avec les outils de manipulations de fichier de JAVA du type :
    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
     
    public static Boolean print(String content, String fileName) throws Exception {
    		FileOutputStream fos = null;
    		Boolean res = false;
    		try {
    			fos = new FileOutputStream(fileName);
    			fos.write(content.getBytes(), 0, content.getBytes().length);
    			res = true;
    		} catch (Exception e) {
    			throw e;
    		} finally {
    			try {
    				fos.flush();
    				fos.close();
    			} catch (Exception e) {
    			}
    		}
    		return res;
    	}

Discussions similaires

  1. Ajouter des noeud dans un fichier XML
    Par chinoismasque dans le forum Windows Phone
    Réponses: 4
    Dernier message: 02/08/2011, 16h32
  2. Ajouter un noeud dans un fichier XML
    Par rambc dans le forum Général Python
    Réponses: 4
    Dernier message: 05/05/2010, 13h55
  3. [JDOM] ajout d'un noeud dans un fichier xml en java
    Par sampaiX dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 22/04/2010, 17h53
  4. Récupérer les valeurs d'un noeud dans un fichier XML
    Par yosthegost dans le forum Delphi
    Réponses: 1
    Dernier message: 30/05/2006, 17h38
  5. [VB.NET] [XML] Suppression d'un noeud dans un fichier XML
    Par Hoegaarden dans le forum Windows Forms
    Réponses: 2
    Dernier message: 24/09/2004, 11h24

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