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 :

effacer les lignes vides


Sujet :

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

  1. #1
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 153
    Points : 100
    Points
    100
    Par défaut effacer les lignes vides
    salut ,

    J'ai un fichier XML comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <noeud1>blabla</noeud1>
     
    <noeud2>blabla</noeud2>
    Vous remarquerez qu'il y a une ligne vide entre les 2 noeuds.
    Ce que je veux faire c'est effacer cette ligne et rendre le fichier comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <noeud1>blabla</noeud1>
    <noeud2>blabla</noeud2>
    g pensé au code ASCII avec le saut de ligne qui est égal à 10 mais comment le détecter dans un fichier XML à partir d'un programme java. J'utilise DOM bien sûr.

    Merci d'avance pour votre aide
    Rien ne sert de courir, il faut partir à point.

  2. #2
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 153
    Points : 100
    Points
    100
    Par défaut
    J'ai trouvé une solution qui consiste à convertir mon fichier en String, j'ai trouvé comment faire dans la faq de java:
    Lien
    Le résultat retourné est une chaine de caractères, il faut donc la parcourir pour trouver un saut de ligne.
    Avant la conversion, il faut bien sûr transformer le fichier XML en un document et pour ça y a pas de pb!

    A suivre ...
    Rien ne sert de courir, il faut partir à point.

  3. #3
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    Détecter le retour à la ligne (\n) et après? Faut détecter la ligne vierge aussi, non?
    Un fichier XML est un fichier texte donc pourquoi ne pas le lire comme un fichier texte et détecter la ligne vide simplement?

    Nas'

  4. #4
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 153
    Points : 100
    Points
    100
    Par défaut
    Merci pour l'idée mais je sais pas comment faire
    Rien ne sert de courir, il faut partir à point.

  5. #5
    Membre confirmé

    Inscrit en
    Juillet 2002
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 116
    Points : 514
    Points
    514
    Par défaut
    Voici un exemple rapide :
    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
     
    FileInpuStream in = ...;
    FileOutputStream out = ...;
     
    BufferedReader reader = new BUfferedReader(new InputStreamReader(in));
    BufferedWriter writer = new BufferedWriter(new OutputStream(out));
     
    String ligne = null;
    while((ligne=reader.readLine())!=null)
    {
    	if(!ligne.trim().equals(""))
    	{
    		writer.write(ligne);
    		writer.newLine();
    	}
    }
    in est le fichier que tu dois lire, et out le fichier que tu veut écrire ...

    tu lis ligne par ligne, et tu écris la ligne si elle n'est pas vide ...

  6. #6
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 153
    Points : 100
    Points
    100
    Par défaut
    Il est bien ton exemple mais il m'a effacé tout le contenu du fichier !!
    Rien ne sert de courir, il faut partir à point.

  7. #7
    Membre éprouvé
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Points : 935
    Points
    935
    Par défaut
    il faut finaliser l'écriture

  8. #8
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 153
    Points : 100
    Points
    100
    Par défaut
    et ça fait quoi ?
    Rien ne sert de courir, il faut partir à point.

  9. #9
    Membre éprouvé
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Points : 935
    Points
    935
    Par défaut
    cela ecrit dans le fichier le contenu du buffer

  10. #10
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 153
    Points : 100
    Points
    100
    Par défaut
    pareil, même catastrophe !!
    voilà ce que j'ai écrit:
    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
     private void verifyLine() throws FileNotFoundException, IOException {
            File propertiesFile = getXMLFile(fileName);
     
            FileInputStream in = new FileInputStream(propertiesFile) ;
            FileOutputStream out = new FileOutputStream(propertiesFile);
     
            BufferedReader reader = new BufferedReader(new InputStreamReader(in));
            BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out));
     
            String ligne = null;
            while((ligne=reader.readLine())!=null)
            {
               if(!ligne.trim().equals(""))
               {
                  writer.write(ligne);
                  writer.newLine();
                  writer.flush();
               }
            }
         }
    que dois-je changer
    Merci beaucoup pour votre aide
    Rien ne sert de courir, il faut partir à point.

  11. #11
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 153
    Points : 100
    Points
    100
    Par défaut
    pour info voici la fonction getXMLFile mais elle marche c'est pas ça le problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    private File getXMLFile(String path) {
            return new File(path);
        }
    elle retourne un fichier suivant le path qu'elle reçoit en paramètre.
    Rien ne sert de courir, il faut partir à point.

  12. #12
    Membre éprouvé
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Points : 935
    Points
    935
    Par défaut
    tu ne peux pas lire et ecrire dans le même fichier !

    il faut donc passer par un fichier temporaire.

    essaie :
    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
                File propertiesFile = getXMLFile(fileName); 
                //creation d'un fichier temporaire
                File tempoFile = File.createTempFile("tempo","test");
                FileInputStream in = new FileInputStream(propertiesFile) ; 
                FileOutputStream out = new FileOutputStream(tempoFile); 
     
                BufferedReader reader = new BufferedReader(new InputStreamReader(in)); 
                BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out)); 
     
                String ligne = null; 
                while((ligne=reader.readLine())!=null) 
                { 
                   if(!ligne.trim().equals("")) 
                   { 
                      writer.write(ligne); 
                      writer.newLine(); 
                   } 
                } 
                writer.flush();
                writer.close();
                reader.close();
                //puis on remplace le fichier xml par le fichier temporaire.
                propertiesFile.delete();
                tempoFile.renameTo(propertiesFile);

  13. #13
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 153
    Points : 100
    Points
    100
    Par défaut
    cette fois ça marche
    mille mercis, je ne sais pas ce que je deviendrai sans ce forum
    Rien ne sert de courir, il faut partir à point.

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

Discussions similaires

  1. [E-02] Effacer les lignes vides
    Par Slici dans le forum Excel
    Réponses: 4
    Dernier message: 06/03/2009, 07h36
  2. Supprimer les lignes vides d'un document Word
    Par Jerfa dans le forum VBA Word
    Réponses: 4
    Dernier message: 28/08/2006, 16h12
  3. Réponses: 2
    Dernier message: 04/05/2006, 13h10
  4. [Sqlldr] Ignorer les lignes vides
    Par hubsm dans le forum SQL
    Réponses: 1
    Dernier message: 27/02/2006, 15h03
  5. supprimer les lignes vides?
    Par VinnieMc dans le forum Langage
    Réponses: 5
    Dernier message: 27/02/2006, 14h01

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