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

Entr�e/Sortie Java Discussion :

Convertion fichier XML to CSV Java


Sujet :

Entr�e/Sortie Java

  1. #1
    Membre confirm�
    Homme Profil pro
    Administrateur syst�mes et r�seaux
    Inscrit en
    D�cembre 2022
    Messages
    72
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Administrateur syst�mes et r�seaux

    Informations forums :
    Inscription : D�cembre 2022
    Messages : 72
    Par d�faut Convertion fichier XML to CSV Java
    Bonjour,

    J'ai fait un petit programme Java comme ceci afin de convertir un fichier.xml en fichier.csv .

    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
        //lecture du fichier SHI.xml
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();
            Document document = builder.parse(new File("C:\\Users\\Maintenance\\int_EGO\\SHI\\SHI.xml"));
            //Rechercher chaque code commande dans les champs "NUMXCVE"
            document.getDocumentElement().normalize();
            NodeList NUMXCVEListe = document.getElementsByTagName("NUMXCVE");
            DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd/MM/yyyy");  
            LocalDateTime now = LocalDateTime.now();  
     
            //Rechercher chaque ligne quantité dans les champs "Quantite"
            //NodeList REFXARTListe = document.getElementsByTagName("REFXART");
            NodeList QuantiteListe = document.getElementsByTagName("Quantite");
            NodeList NLIXCVLListe = document.getElementsByTagName("NLIXCVL");
            NodeList TRCXCVLListe = document.getElementsByTagName("TRCXCVL");
            NodeList REFXCVEListe = document.getElementsByTagName("REFXCVE");
            //créer le fichier SHI.csv
            FileWriter file = new FileWriter("C:\\Users\\Maintenance\\int_EGO\\SHI\\SHI.csv");
            //Ajoute de l'entete dans un tableau et le fichier csv
            List<Object> data = new ArrayList<>();
            String[] entete = {
                    "Document - N° document",
                    "Document - BL EGO",
                    "Document - Date",
                    "Document - Code client",
                    "Document - Nom du client",
                    "Ligne - Code article",
                    "Ligne - Quantité",
                    "Ligne - % remise",
                    "Ligne - référence client",
     
            };
            file.append(entete[0]
                    +";"+entete[1]
                            +";"+entete[2]
                                    +";"+entete[3]
                                            +";"+entete[4]
                                                    +";"+entete[5]
                                                            +";"+entete[6]
                                                                    +";"+entete[7]
                                                                            +";"+entete[8]
                                                                                    +";"+entete[9]
                                                                                            +"\n");
     
            System.out.println(entete[0]);
            System.out.println(entete[5]);
            data.add(entete);
    Mais lors de l'ex�cution de mon programme.

    Mon fichier.csv est vide ?

    Avez-vous des solutions ?

    Merci d'avance pour vos r�ponses

  2. #2
    Mod�rateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par d�faut
    Vu que le FileWriter n'est pas ferm�, �a semble coh�rent.
    Il faudrait utiliser la forme
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ...
    try
    (FileWriter file = new FileWriter("C:\\Users\\Maintenance\\int_EGO\\SHI\\SHI.csv");)
    {
        // le code d'utilisation de file
    }
    catch (Exception e)
    {
       // Traitement si besoin de l'exception
    }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre chevronn�
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mai 2020
    Messages
    348
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Architecte technique

    Informations forums :
    Inscription : Mai 2020
    Messages : 348
    Par d�faut
    Bonjour,

    Vous ne fermez pas le file. Par ailleurs la ligne data.add(entete); n'aura pas d'incidence sur le contenu de votre fichier.

  4. #4
    Membre confirm�
    Homme Profil pro
    Administrateur syst�mes et r�seaux
    Inscrit en
    D�cembre 2022
    Messages
    72
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Administrateur syst�mes et r�seaux

    Informations forums :
    Inscription : D�cembre 2022
    Messages : 72
    Par d�faut
    Le "file.append" est ferm� � la ligne 42 apr�s le " \n);"

  5. #5
    Mod�rateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par d�faut
    Et alors... l'instance "file" n'est pas ferm�e et c'est elle qui compte.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre confirm�
    Homme Profil pro
    Administrateur syst�mes et r�seaux
    Inscrit en
    D�cembre 2022
    Messages
    72
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Administrateur syst�mes et r�seaux

    Informations forums :
    Inscription : D�cembre 2022
    Messages : 72
    Par d�faut
    Dans ce cas comment le fermer ?

  7. #7
    Mod�rateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par d�faut
    Hmmm, l'exemple au-dessus, celui qui dit "Il faudrait utiliser la forme" suivi d'un exemple de code.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre confirm�
    Homme Profil pro
    Administrateur syst�mes et r�seaux
    Inscrit en
    D�cembre 2022
    Messages
    72
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Administrateur syst�mes et r�seaux

    Informations forums :
    Inscription : D�cembre 2022
    Messages : 72
    Par d�faut
    J'ai essay� mais le programme produit le m�me r�sultat.

  9. #9
    Mod�rateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par d�faut
    Fais voir le code mis � jour.

    Et pendant qu'on y est, dis-nous comment tu sais que le fichier produit est vide.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre confirm�
    Homme Profil pro
    Administrateur syst�mes et r�seaux
    Inscrit en
    D�cembre 2022
    Messages
    72
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Administrateur syst�mes et r�seaux

    Informations forums :
    Inscription : D�cembre 2022
    Messages : 72
    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
    try
    		(FileWriter file = new FileWriter("C:\\Users\\Maintenance\\int_EGO\\SHI\\SHI.csv");)
    		{
    		//Ajoute de l'entete dans un tableau et le fichier csv
    		List<Object> data = new ArrayList<>();
    		String[] entete = {
    				"Document - N° document",
    				"Document - BL EGO",
    				"Document - Date",
    				"Document - Code client",
    				"Document - Nom du client",
    				"Ligne - Code article",
    				"Ligne - Quantité",
    				"Ligne - % remise unitaire cumulé",
    				"Ligne - référence client",
     
    		};
    		file.append(entete[0]
    				+";"+entete[1]
    						+";"+entete[2]
    								+";"+entete[3]
    										+";"+entete[4]
    												+";"+entete[5]
    														+";"+entete[6]
    																+";"+entete[7]
    																        +";"+entete[8]
    																        		+";"+entete[9]
    																        				+"\n");
     
    		System.out.println(entete[0]);
    		System.out.println(entete[5]);
    		data.add(entete);
    Je sais que mon fichier est vide car mon programme le met dans un de mes dossiers.
    Le fichier appara�t mais vide...

  11. #11
    Mod�rateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par d�faut
    Patience, patience.

    Comment est-ce que tu sais que, ce fichier qui appara�t, est vide ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Membre confirm�
    Homme Profil pro
    Administrateur syst�mes et r�seaux
    Inscrit en
    D�cembre 2022
    Messages
    72
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Administrateur syst�mes et r�seaux

    Informations forums :
    Inscription : D�cembre 2022
    Messages : 72
    Par d�faut
    je l'ouvre et il appara�t mais vide...

  13. #13
    Mod�rateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par d�faut
    Donc t'as vraiment pas envie de donner des d�tails, tr�s bien. C'est vrai que c'est pas toi qui as besoin d'aide.

    - De quelle mani�re t'y es-tu pris pour �tre 100% certain que le fichier que tu ouvres, c'est C:\Users\Maintenance\int_EGO\SHI\SHI.csv ?
    - Quelle est la taille en octets de ce fichier ?
    - Si tu supprimes ce fichier et que tu relances le programme, il r�appara�t ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  14. #14
    Membre confirm�
    Homme Profil pro
    Administrateur syst�mes et r�seaux
    Inscrit en
    D�cembre 2022
    Messages
    72
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Administrateur syst�mes et r�seaux

    Informations forums :
    Inscription : D�cembre 2022
    Messages : 72
    Par d�faut
    Le programme l'exporte dans C:\Users\Maintenance\int_EGO\SHI\SHI.csv donc je vois si le fichier est vide en l'ouvrant.

    La taille du fichier est de O ko.

    Lorsque je supprime le fichier et que je relance le programme.

    Le programme me recr�� un fichier vide.

  15. #15
    Mod�rateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par d�faut
    Eh ben j'avais loup� mon copier/coller. L� j'avoue je sais pas comment j'ai fait mon compte.

    Mais bref, maintenant on a l'explication:

    ton tableau entete contient 9 �l�ments.
    �a lui fait donc des indices valides de 0 � 8, pas de 0 � 9, puisque l'indice 0 compte pour un.
    A cause de �a, entete[9] crashe l'ex�cution.

    On peut se demander ce que ton programme contient pour qu'il n'y ait pas un message d'erreur �vident qui s'affiche pour le signaler.

    On pourra aussi signaler que tu pourrais faire une boucle sur ton tableau entete, plut�t que de mentionner entete[0] � entete[8].
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  16. #16
    Membre confirm�
    Homme Profil pro
    Administrateur syst�mes et r�seaux
    Inscrit en
    D�cembre 2022
    Messages
    72
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Administrateur syst�mes et r�seaux

    Informations forums :
    Inscription : D�cembre 2022
    Messages : 72
    Par d�faut
    D'accord je vais essayer de supprimer l'entete[9] et je te refais un retour.

Discussions similaires

  1. sed et awk pour transformation d'un fichier XML en CSV
    Par bstages2000 dans le forum Linux
    R�ponses: 4
    Dernier message: 02/03/2008, 17h19
  2. [DOM] [D�butant(e)] �crire sur un fichier XML � partir de java
    Par Samanta dans le forum Format d'�change (XML, JSON...)
    R�ponses: 11
    Dernier message: 05/02/2008, 11h13
  3. Comment importer un fichier xml ou csv dans une table paradox ?
    Par pierrot67 dans le forum Bases de donn�es
    R�ponses: 1
    Dernier message: 19/09/2007, 15h35
  4. Convertion fichier excel en CSV
    Par ceaser dans le forum Excel
    R�ponses: 1
    Dernier message: 23/05/2007, 14h56
  5. Comment lire des donn�es d'un fichier XML � partir de java
    Par kamaldev dans le forum Format d'�change (XML, JSON...)
    R�ponses: 11
    Dernier message: 25/08/2006, 19h29

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