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 :

Déplacer un sous arbre d'un fichier xml vers un autre [JDOM]


Sujet :

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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4
    Par défaut Déplacer un sous arbre d'un fichier xml vers un autre
    Bonjour,
    Je suis débutant en Java et JDOM, j'ai un petit souci .
    Je voudrais savoir comment faire pour sélectionner des éléments (sous arbres) d'un fichier XML (personnes.xml) et les déplacer vers d'autre fichier. Plus précisément j'ai un fichier personnes.xml et je voudrais sélectionner tous les personnes (élément complexe personne) et les insérer dans le fichier Requete.xml plus précisément dans la balise Create
    Fichier personnes.xml
    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
     
    <personnes>
    	<personne id="1">
    		<nom>…</nom>
    		<prenom>…</prenom>
    		<adresse>
    			<rue>…</rue>
    			<code>…</code>
    			<etat>….</etat>
    		</adresse>
    	  </personne>
              <personne id="2">
    		<nom>…</nom>
    		<prenom>…</prenom>
    		<adresse>
    			<rue>…</rue>
    			<code>…</code>
    			<etat>….</etat>
    		</adresse>
    	 </personne>
             <personne id="3">
    		<nom>…</nom>
    		<prenom>…</prenom>
    		<adresse>
    			<rue>…</rue>
    			<code>…</code>
    			<etat>….</etat>
    		</adresse>
    	</personne>
    …………………….
    </personnes>
    Le fichier Requete.xml sous forme d'un message Soap:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <soap-env:Envelope>
    <soap-env:Header/>
    <soap-env:Body>
    	<Create/>
    </soap-env:Body>
    </soap-env:Envelope>
    Merci d'avance.
    Merci d'avance.

  2. #2
    Membre émérite Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Par défaut
    Si tu veux tout déplacer, il sera peut-être bon de passer par du XSL.
    Sinon, tu peux lire ton fichier, construire un arbre, et réecrire ce qui t'interesse dans ton nouveau fichier...
    Tu aurais pu regarder dans les tutos, tu aurais trouvé comment manipuler des données avec JDOM

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4
    Par défaut
    Je vous remercie de votre réponse.
    mon probleme est comment envoyer plusieurs messages SOAP (chaque message contient dans la balise <Create> un élément <Personne> et un seul). Un message SOAP pour chaque personne, en fait j'ai plusieurs destinations et selon la personne j'envoi le message.
    De plus, mon fichier contient plus de 100 personnes (seulement pour tester).
    Merci d'avance.

  4. #4
    Membre émérite Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Par défaut
    Bon ben voila un exemple de comment tu pourrais faire :
    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
     
    ... {
    List list = racine.getChildren("personne");
     
       //On crée un Iterator sur notre liste
       Iterator i = list.iterator();
       while(i.hasNext())
       {
          //On recrée l'Element courant à chaque tour de boucle afin de
          //pouvoir utiliser les méthodes propres aux Element comme :
          //selectionner un noeud fils, modifier du texte, etc...
          Element courant = (Element)i.next();
          //On affiche le nom de l'element courant
          generateSoapFile(new Personne(courant.getChild("nom").getText(), courant.getChild("prenom").getText(), // le reste vient ici));
       }
     
    ...
    }
     
    private void generateSoapFile(Personne p) {
      try {
            BufferedWriter out = new BufferedWriter(new FileWriter("requete_"+p.getName()+".xml"));
    	out.write("<soap-env:Envelope>\n<soap-env:Header/>\n<soap-env:Body><create>\n");
            out.write(p.toXmlString());
    	out.write("</soap-env:Body>\n</soap-env:Envelope>\n");
            out.close();
        } catch (IOException e) {
        }
    }
    Je te laisse le soin de définir la méthode toXmlString() dans la classe Personne

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4
    Par défaut
    OK, OK j'ai compris et je vous remercie.
    Maintenant j'essai votre proposition et je vous tiens au courant.

    Merci

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4
    Par défaut
    Merci beaucoup sozie9372.
    @la prochaine.

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

Discussions similaires

  1. Représentation intervallaire : Déplacer un sous-arbre
    Par royalwear dans le forum Langage
    Réponses: 0
    Dernier message: 03/11/2011, 15h11
  2. Réponses: 7
    Dernier message: 12/01/2011, 03h58
  3. Importer le contenu un fichier xml dans un autre fichier xml
    Par gedeon555 dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 27/07/2005, 11h49
  4. [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