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 :

Fusion de plusieurs fichiers XML en un seul


Sujet :

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

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Divers
    Inscrit en
    Février 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2019
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Fusion de plusieurs fichiers XML en un seul
    Bonjour

    Je suis débutant en java (j'utilise NetBeans) et je souhaiterais lister tous les fichiers XML d'un dossier défini en amont grâce à un JFileChooser car je souhaiterais récupérer tout le contenu du nœud <PmtInf> de chaque fichier xml pour le copier à la suite du 1er fichier trouvé.

    J'ai commencé avec deux fichiers XML défini en statique (voir pièce jointe exemple1.xml et exemple2.xml) mais lorsque je souhaite récupérer tout le contenu du nœud <PmtInf> de mon deuxième fichier pour l'afficher à la suite du nœud <PmtInf> de mon 1er fichier cela ferme mon nœud </pain.001.001.02> avant de le mettre (pièce jointe final.xml) et je ne comprends pas pourquoi.

    Voici la partie code en java :

    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
     
     
    package javaapplication3;
     
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.StringWriter;
    import java.io.Writer;
     
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.OutputKeys;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
     
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
     
    public class JavaApplication3 {
     
        public static void main(String[] args) throws Exception {
     
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            dbf.setValidating(false);
            DocumentBuilder db = dbf.newDocumentBuilder();
     
            Document doc1 = db.parse(new FileInputStream(new File("exemple1.xml")));
            Document doc2 = db.parse(new FileInputStream(new File("exemple2.xml")));
     
            System.out.println("Avant Copie...");
            prettyPrint(doc2);
     
            NodeList list = doc1.getElementsByTagName("PmtInf");
            Element element = (Element) list.item(0);
     
            Node copiedNode = doc2.importNode(element,true);
            doc2.getDocumentElement().appendChild(copiedNode);
     
            System.out.println("Après Copie...");
            prettyPrint(doc2);
     
        }
        public static final void prettyPrint(Document xml) throws Exception {
            Transformer tf = TransformerFactory.newInstance().newTransformer();
            tf.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
            tf.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
            tf.setOutputProperty(OutputKeys.INDENT, "yes");
            Writer out = new StringWriter();
            tf.transform(new DOMSource(xml), new StreamResult(out));
            System.out.println(out.toString());
        }
     
    }
    J'aurais peut être également besoin de votre aide plus tard pour gérer la partie pour récupérer tous les fichiers XML depuis un dossier défini et pour les faire afficher dans un composant Jlist ou autre avec sélection grâce à des cases à cocher mais pour le moment je souhaite régler ce premier souci.

    Merci par avance à tout ceux qui prendront du temps à regarder et qui pourront m'apporter une solution et m'aider à avancer.
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Bonjour

    Merci de modifier ou re-publier ton message avec le code source en utilisant la balise CODE (bouton #)
    et non pas avec un screen shot qui ne permet pas l'analyse.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    ben qu'est-ce qu'il y a à comprendre ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    doc2.getDocumentElement().appendChild(copiedNode);
    => prendre l'élément racine de doc2. Ajouter à la fin de cet élément, l'élément copiedNode.

    T'as jamais dit qu'il fallait le mettre à l'intérieur de l'élément <pain.001.001.02>. T'as dit qu'il faut le mettre à la fin de l'élément racine. Ben la fin de l'élément racine, c'est après l'élément <pain.001.001.02>.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Divers
    Inscrit en
    Février 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2019
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour

    Merci pour votre réponse je comprends mieux d'où viens le souci. Avez vous le lien d'un cours ou d'un tutoriel qui pourrait m'aider à faire ce que je souhaite sans vous déranger ou pouvez vous me fournir m'orienter sur la méthode qu'il faut utiliser ou me transmettre une correction.

    Merci par avance.

Discussions similaires

  1. Fusion de plusieurs fichiers XML de types tAdvancedFileOutputXML
    Par karinedebut dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 08/11/2017, 17h56
  2. Fusion de plusieurs fichiers xml avec xslt
    Par majduuus dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 29/07/2013, 15h30
  3. copier plusieurs fichiers XML en un seul
    Par l_dl_d dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 28/04/2010, 11h00
  4. Fusion de plusieurs fichiers XML
    Par Ya7yaKech dans le forum Windows Forms
    Réponses: 0
    Dernier message: 26/01/2009, 18h50
  5. Transformer plusieurs fichiers xml en un seul
    Par Ya7yaKech dans le forum Windows Forms
    Réponses: 2
    Dernier message: 23/01/2009, 13h52

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