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 :

Remplacer Terme d'un fichier XML


Sujet :

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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2002
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 36
    Par défaut Remplacer Terme d'un fichier XML
    Bonjour,

    J'ai un fichier template au format XML (un fichier FO).
    Je souhaite remplacer différents termes de ce modèle selon les informations provenant d'une bdd. Cela afin de sortir un document PDF (--> FOP) en fonction des renseignements demandés.

    J'ai essayé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    fofile = new File("F:\\examples\\facture.fo");
    FileInputStream reader = new FileInputStream(fofile);
    FileOutputStream writer = new FileOutputStream("tmpFile");
    StringBuffer tmp = new StringBuffer();
    int offset = 0;
    while ((offset = reader.read()) != -1) {
        tmp.append((char) offset);
    }
    reader.close();
    tmp.toString().replaceAll("COMPANY_NAME", "Ma Société");
    writer.write(tmp.toString().getBytes());
    reader = new FileInputStream("tmpFile");
    renderFO(new InputSource(reader), response);
    Mais le remplacement n'a pas été fait, j'ai toujours COMPANY_NAME en sortie dans mon fichier PDF.

    Je pense qu'un FileWriter et FileReader serait plus approprié que des FileInputStream et FileOutputStream, mais avec les premiers, j'ai des erreurs lorsque le document final est parsé pour conversion (L'erreur dit que le fichier XML doit se finir avec la même balise que celle de début, ce qui est normalement le cas.)

    Que ce passe t'il alors ? Pour le remplacement ne fonctionne pas ?

    Merci d'avance

    Steph






    [Modéré par Didier]
    Modification du tag (ancien [Java])
    Lire les règles du forum : Règles du forum Java

  2. #2
    Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 12
    Par défaut
    ben tu fermes pas ton writer donc ca peut pas marcher je pense. il écrit rien du tout dans tempfile

  3. #3
    Membre éprouvé
    Avatar de narkotik
    Inscrit en
    Mai 2004
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 117
    Par défaut
    oui un p'tit close a la fin serait le bienvenu

  4. #4
    Membre averti
    Inscrit en
    Mai 2002
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 36
    Par défaut
    Bon effectivement il manquait un petit close...

    Mais cela ne change rien. Mon nouveau fichier contien bien l'ancien mais sans le remplacement opéré ici.

    Le fait que je lise des bytes est-il un problème ici ?

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 12
    Par défaut
    ca yest :
    faut faire ca je pense :
    String s=tmp.toString().replaceAll("COMPANY_NAME", "Ma Société");

    et enregistrer s est non plus tmp.toString()?

    j'ai bon :

  6. #6
    Membre averti
    Inscrit en
    Mai 2002
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 36
    Par défaut
    A Signaler, depuis le close je peux de nouveau utiliser un FileWriter et un FileReader.

    Effectivement, si je ne ferme pas mon flux, il n'est pas content.

    Merci pour cela déjà ;-)

    Donc maintenant, je commence à me dire que je n'utilise pas bien replaceAll.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tmp.toString().replaceAll("COMPANY_NAME", "Ma Société");
    Steph

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 12
    Par défaut
    cf ma réponse précédente

  8. #8
    Membre averti
    Inscrit en
    Mai 2002
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 36
    Par défaut
    Clairement que c'est ça l'erreur... bien vu...
    Pfff, j'suis trop naze...

    Tellement sûr de moi que je n'ai pas bien relu la signature de la méthode.

    Merci bien

    Steph

  9. #9
    Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 12
    Par défaut
    de rien

    mais personne est nul ici! juste on se pose des questions. le doute c'est bien non? on dit pas ça en philo?

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 31/08/2010, 11h19
  2. [XSLT] Remplacer element d'un fichier xml par du texte
    Par ALAMI2009 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 26/11/2009, 15h09
  3. Réponses: 22
    Dernier message: 27/08/2008, 14h35
  4. remplacement dans un fichier XML
    Par Mobius dans le forum Eclipse
    Réponses: 1
    Dernier message: 07/05/2008, 10h06
  5. [XSLT] remplacement de chaine dans un fichier XML
    Par Eldarion dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 11/07/2006, 13h30

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