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 :

Transformer un arbre en fichier XML


Sujet :

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

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Transformer un arbre en fichier XML
    Bonsoir à tous,

    J'ai un petit problème de programmation à laquel j'espère trouver une réponse

    Alors voila, j'écris un programme qui récupère l'arborescence d'un de mes dossiers.. Jusqu'à là aucun soucis. Ensuite j'aimerai transformer l'arbre obtenu en fichier XML.
    Là ça se corse pour moi. J'ai lu pas mal de docs sur JDOM et DOM mais je reste désespérement bloqué...

    Je voudrai obtenir un fichier de ce genre là :

    <racine>
    <dossier nom_dossier>
    <fichier> nom_fichier </fichier>
    <dossier nom_dossier2>
    <fichier> nom_fichier2 </fichier>
    </dossier>
    </dossier>
    </racine>



    Merci d'avance pour vos réponses !
    bonne soirée

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    et concretement, qu'est-ce qui vous bloque, qu'avez vous essayé?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
     
     
    import java.io.File;
    import java.io.FileOutputStream;
    import javax.swing.*;
    import javax.swing.tree.*;
    import org.jdom.*;
    import org.jdom.output.*;
     
     
     
     
    public class Arbre extends JFrame {
     
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
     
    	 File fichier=new File("C:/Users/Alexandre/Documents/crypté_test");   //zone du fichier crypté
    	 static Element racineXML = new Element("fichier crypté");
    	 static org.jdom.Document document = new Document(racineXML);
     
    	 public Arbre() {
     
    	 // on définit le premier noeud
    	 DefaultMutableTreeNode racine = new DefaultMutableTreeNode("fichier crypté", true);
    	 DefaultMutableTreeNode cont = arborescence(fichier);
    	 racine.add(cont);
             affiche();
             enregistre("test.xml");
     
     
    	 }
     
     
    	 public DefaultMutableTreeNode arborescence(File fic) {
     
    		 Element dossier = new Element("dossier");
    		 Element fich = new Element("fichier");
    		 DefaultMutableTreeNode racine = new DefaultMutableTreeNode(fic,true); 	 // création d'un noeud
    		 File[] list = fic.listFiles(); 	 // on recupère la liste des fichiers et sous rep
     
     
    		 if ( list != null){
    			 for (int j = 0 ; j<list.length ; j++) {
    				 DefaultMutableTreeNode file = null;
    				 if (list[j].isDirectory()) {
    					 dossier.setText(list[j].getName());
    					 racineXML.addContent(dossier);
    				 }else{
    					 fich.setText(list[j].getName());
    					 racineXML.addContent(fich);
    				 }
    				 file = arborescence(list[j]);
    				 racine.add(file);
     
    			 }
    		 }
    		 return racine;
    	 }
     
    	 static void affiche()
    	 {
    	    try
    	    {
    	       //On utilise ici un affichage classique avec getPrettyFormat()
    	       XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
    	       sortie.output(document, System.out);
    	    }
    	    catch (java.io.IOException e){}
    	 }
     
    	 static void enregistre(String fichier)
    	 {
    	    try
    	    {
    	       //On utilise ici un affichage classique avec getPrettyFormat()
    	       XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
    	       //Remarquez qu'il suffit simplement de créer une instance de FileOutputStream
    	       //avec en argument le nom du fichier pour effectuer la sérialisation.
    	       sortie.output(document, new FileOutputStream(fichier));
    	    }
    	    catch (java.io.IOException e){}
    	 }
     
     
     
    }

    Alors voila les différents problèmes :
    -je ne vois pas comment construire l'arborescence (ici j'ajoute uniquement à ma racineXML, mais je ne prend pas en compte le fait qu'un dossier peut contenir des fichiers).
    -Aucun fichier n'est créé à l'issue de l'exécution

    J'ai pris les fonctions 'enregistre' et 'affiche' qui fonctionnent pour tester ma fonction arbre donc le problème ne vient pas de là (http://cynober.developpez.com/tutoriel/java/xml/jdom/)

Discussions similaires

  1. [XSL] Transformation d'un tableau (fichier xml vers html)
    Par Bananou dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 27/04/2010, 12h03
  2. transformation Richbox.Text en fichier XML
    Par TaymouWan dans le forum Linq
    Réponses: 6
    Dernier message: 17/03/2009, 09h36
  3. [XSLT] transformation xsl avec un fichier xml en utf8
    Par thierry_b dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 08/12/2008, 10h46
  4. Transformer un très gros fichier XML avec XSL
    Par wozzz dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 30/05/2006, 10h57
  5. [DOM] Serialiser arbre DOM en fichier XML
    Par Overflow64 dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 20/10/2004, 11h53

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