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 :

probleme de formatage.


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
    Novembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4
    Par défaut probleme de formatage.
    Bonjour à toutes et à tous,
    J'utilise l'API JDom pour pour générer un fichier XML.

    Mon soucis est le suivant: Lorsque l'input est au format windows et comporte les sauts de ligne, le résultat de mon fichier comporte des retour chariot.


    En INPUT: J'ai un fichier texte suivant:
    Bonjour. j'énumere:
    1.:Un
    2.eux
    Fin du test

    En OUPUT:Je veux obtenir ça:
    <XML>
    Bonjour. j'énumere:
    1.:Un
    2.eux
    Fin du test
    </XML>

    Etape de mon programme:
    1) Je lis ce fichier que je stocke en String via un mon programme Java.

    2) J'utilise l'API JDom

    3) si l'input était ecrit au format unix, le résultat est correct, mais au format windows, j'obtiens ça:
    <XML>
    Bonjour. j'énumere:&#xD;
    1.:Un&#xD;
    2.eux&#xD;
    Fin du test&#xD;
    </XML>


    &#xD; correspondrait au caractere unicode de retour chariot.

    Quelqu'un aurait-il des idées comment faire pour ne pas obtenir les retours chariot?.
    Pour que le traitement avec les input sous windows produit les bons résultats.



    Voici les elements relatifs à mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //construction de mon format
    Format monFormat=Format.getPrettyFormat();
    monFormat=monFormat.setOmitDeclaration(true);
    monFormat=monFormat.setExpandEmptyElements(true);  
    monFormat=monFormat.setTextMode(Format.TextMode.PRESERVE);
    monFormat=monFormat.setIndent("    ");
    monFormat.setIgnoreTrAXEscapingPIs(true);//le bon est true
    monFormat=monFormat.setEncoding("ISO-8859-1");
    String separator=System.getProperty("line.separator");
    monFormat=monFormat.setLineSeparator(separator); 
    XMLOutputter xmlSortie = new XMLOutputter(monFormat);//Utilisation de l'affichage classique          
    //
    mon programme s'éxecute sous unix. L'input est variable, tantôt des fichiers de type UNIX tantôt de type de format windows.
    //génération du flux
    Element element=new Element();
    element.setText(ici mon string vu en 1));uction du format:

    xmlSortie.output(element, fileOstr);//où fileOstr est un FileOutputStream

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 104
    Par défaut
    Bonjour,
    A mon avis, le problème ne vient pas de JDom mais de la lecture du fichier INPUT.
    Les lignes n'ont sans doute pas été lues via la méthode readLine de BufferedReader qui permet de s'affranchir des fins de ligne en LF (unix), CR (mac) ou CR LF (windows).

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4
    Par défaut
    Bonjour pk960,

    Je te remercie pour ta contribution.

    Les input sont soient des fichiers au format WINDOWs soient des fichiers au format UNIX.

    En réalité, mon programme se situe après obtention du String contenant les données des fichiers INPUT. C'est un autre programme qui me donne ce String. Je n'ai pas la main avant.

    Pour les String au format Unix: le fichier XML généré est correct. Cela s'explique par le fait que j'ai pris le separateur d'unix (voir code,
    String separator=System.getProperty("line.separator");, mon programme s'exécute sous unix).

    Pour les String au format Windows: le fichier XML généré n'est pas bon. Comme décrit dans le message du départ, on a des caractères unicodes qu s'apparente au retour chariot à chaque fin de ligne.


    Peut-on affiner l'objet format de JDOM pour qu'il puisse gérer correctement le String provenant D'unix et ceux provenant de windows?
    ou
    Existe-il un solution moins couteuse permettant de transformer le string écrit en windows sous forme d'un string en unix?.

    J'ai essayé d'écrire une petite classe utilitaire qui parse tout String, recherche les caracteres retour chariot et les virer tous en amont de mon programme, mais je n'arrive pas à detecté les retour chariot: je cale.

Discussions similaires

  1. [ASUS F3Jm]Problème au formatage
    Par inoxx dans le forum Composants
    Réponses: 9
    Dernier message: 19/11/2006, 19h53
  2. Problème de formatage sur site en arabe
    Par fpolastron dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 16/11/2006, 01h13
  3. exportation sur excel problème de formatage
    Par Alexandre Sahli dans le forum Access
    Réponses: 12
    Dernier message: 05/09/2006, 17h56
  4. [Conception] Probleme de formatage de date
    Par kenny49 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/06/2006, 10h24
  5. [XSL FO]probleme de formatage
    Par kroky dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 23/02/2006, 23h02

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