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 :

Créer un fichier XML sous une forme bien précise [DOM]


Sujet :

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

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Points : 66
    Points
    66
    Par défaut Créer un fichier XML sous une forme bien précise
    Bonjour,

    M'ayant documenté mais n'assimilant pas très bien l'XML lié au JAVA, j'aimerai savoir si qqn pouvait se pencher sur mon pb.

    Suivant la méthode DOM, je voudrai créer un fichier XML, sous la forme précise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <album>
            <photo  path="/home/xxxx/mesImages/pen.jpg" name ="the X's Pen" size ="640x480"/>
            <photo  path="/home/xxx/mesImages/maths1.jpg" name ="Maths1" size ="640x480"/>
    </album>
    En fait, le truc, c'est que j'ai créé une classe Photographie, où se trouve le nom, le chemin et la taille de la photo. Ensuite, j'ai créé ma liste de photo pour les avoir toutes à dispos pour les modifier. Et mon pb, c'est que quand j'ai fini de tout modifier, j'aimerai convertir la liste des photos, en un fichier XML (de la forme ci-dessus).

  2. #2
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    pour manipulé du XML tu peux utiliser JDom ou bien Xerces ...

    Pour paramétrer le format de ton XML, il faut créer la DTD correspondante, créer un fichier en accord avec cette DTD ... puis ajouter les éléments un à un ...ou utiliser une méthode (que je ne connais pas) pour transformer ta collection de photo directement en ficheir XML ...
    See you, space cowboy... and if you're satisfied, click on

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Points : 66
    Points
    66
    Par défaut
    Ouais, j'avais lu des trucs sur les DTD fût un tps, mais j'avais po trop compris, donc j'avais zappé en espérant ne po en avoir besoin ...

    Donc en fait, pour mon cas, je crée un fichier fic.dtd et je mets ça dedans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <!ELEMENT album (photo) >
    <!ELEMENT photo (name,path,size) >
    <!ELEMENT name (#PCDATA) >
    <!ELEMENT path (#PCDATA) >
    <!ELEMENT size (#PCDATA) >
    ???
    Mais, ça me créra po un fichier de la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <album>
    <photo name=" " path=" " size=" "/>
    </album>
    Ca sera plutôt un truc du style :
    <album>
    <photo>
    <name>" "</name>
    <path>" "</path> 
    <size>" "</size>
    </photo>
    </album>
    non?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 28
    Points : 31
    Points
    31
    Par défaut
    sur chaque objet (Photographie et la liste) tu crées une méthode (qui sera récursif)

    dans Photographie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public void write(org.w3c.dom.Element e) 
    {
    e.setAttribute("path", path);
    e.setAttribute("name", name);
    e.setAttribute("size", size);
     
    }

    dans la colleciton de photo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public void write(org.w3c.dom.Element root) 
    {
     
    for(Photographie p :this)
    {
    Element e = doc.createElement("photo");
    root.appendChild(e);
    p.write(e);
    }
     
    }
    et tu initialise en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Document doc = javax.xml.parser.DocumentBuilder gna gna gna
    Element root = doc.createElement("album");
    doc.appendChild(root);
    list.write(root);

    bon courage

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par muaddob
    et tu initialise en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Document doc = javax.xml.parser.DocumentBuilder gna gna gna
    dans ton code, le gna gna gna, c'est ce qui va me créer mon fichier XML en écriture? Comment qu'on fait ça? Je sais que lire un fichier XML, par contre, écrire, c'est une autre chose ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    Document doc = builder.parse(xmlFile); // ça, ça doit être lae ligne que je dois changer, pck là, c'est pour lire un fichier XML et non écrire dedans, s'po ça?

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 28
    Points : 31
    Points
    31
    Par défaut
    tu y es presque

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    Document doc = builder.newDocument();
    et tu as un doc vierge... tu le rempli... et puis après si besoin, tu le stocke dans un fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    java.io.FileOutputStream fio = new java.io.FileOutputStream(mon_fichier);
    			transformer.transform(new javax.xml.transform.dom.DOMSource(doc),new javax.xml.transform.stream.StreamResult(fio) );
    			fio.close();
    			System.out.println(" done");
    et c'est fini !!!

    cordialement

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 28
    Points : 31
    Points
    31
    Par défaut
    oups, j'ai oublié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    javax.xml.transform.TransformerFactory tf = javax.xml.transform.TransformerFactory.newInstance();
    		javax.xml.transform.Transformer transformer = tf.newTransformer();
    		transformer.setOutputProperty("encoding","ISO-8859-1");

  8. #8
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    pour ta dtd :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <!ELEMENT album(photo)>
    <!ELEMENT photo>
    <!ATTLIST photo
    name PCDATA #REQUIRED
    path PCDATA #IMPLIED
    size PCDATA #IMPLIED>
    Ca te permet d'avoir le fichier sous la forme que tu désires
    See you, space cowboy... and if you're satisfied, click on

  9. #9
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 114
    Points : 66
    Points
    66
    Par défaut
    J'ai mis du tps à répondre, excusez moii!
    En ce qui concerne mon pb, je vous remercie, il est reglé (mici bcp pour ton aide muaddob)

    ++

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/09/2012, 16h07
  2. [Débutant] créer plusieurs fichiers xml grâce à un form lancé
    Par cissoux30 dans le forum C#
    Réponses: 4
    Dernier message: 10/04/2012, 13h00
  3. créer un fichier xml suite à une segmentation
    Par dashrawi dans le forum Images
    Réponses: 3
    Dernier message: 01/05/2009, 10h55
  4. Réponses: 2
    Dernier message: 10/09/2007, 19h03
  5. Réponses: 3
    Dernier message: 24/04/2007, 11h39

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