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

XSL/XSLT/XPATH XML Discussion :

[JAVA][XSL-FO] Mise en forme avec FOP


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 44
    Points : 33
    Points
    33
    Par défaut [JAVA][XSL-FO] Mise en forme avec FOP
    Bonjour,

    j'ai une String contenant plusieurs choses :
    exemple :

    -test1 -test2 -test3.

    Cette String est stocké dans une balise xml. je souhaite lors de l'affichage de cette string via la methode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="CODE"/>
    .

    Là pas de soucis. Elle s'affiche bien mais je souhaiterais qu'elle soit affichée de cette manière :

    -test1
    -test2
    -test3

    Comment je pourrais faire ? sachant que dans mon code JAVA en alimentant cette String, j'ai utilisé "\n". En faisant un System.out.print, pas de pb, les éléments de la String ont bien un saut à la ligne mais pas dans le fichier FOP.

    Quelqu'un peut-il m'aider ?

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 559
    Points : 21 621
    Points
    21 621
    Par défaut
    En XML les sauts de lignes ne sont que du whitespace et traités par défaut comme des espaces.

    Pour que FOP aille à la ligne, il y a deux possibilités :

    - utiliser un balisage explicite qui fait du retour à la ligne : par exemple mettre chaque ligne dans un <fo:block> ou un <fo:list-block>. Pour ça, découper le contenu avec split().

    - définir la propriété linefeed-treatment à "preserve".
    Par nature, XML rend ça un peu compliqué. L'approche du balisage explicite est plus fiable.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    Bonjour,

    étant donné que c'est moi qui génère le fichier XML, puis-je définir mes données sous forme de CDATA ? Si oui, comment je pourrais faire car je bloque.

    Merci.

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 559
    Points : 21 621
    Points
    21 621
    Par défaut
    Hein ?

    À propos de quoi, pour quoi faire, dans quel but et comment c'est censé marcher ?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    Oui, en fait, j'ai un fichier XML. Ce fichier contient un ensemble de balise.
    Ces balises contiennent des Strings, pouvant elle-même contenir des saut de ligne.

    J'utilise le parser SAX.

    Quand je parse mon XML pour générer un PDF, les sauts de lignes n'apparaissent pas dans le PDF. En effet, à la place j'ai un espace.

    y aurait-il une solution ?

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 559
    Points : 21 621
    Points
    21 621
    Par défaut
    Comme dit plus haut :

    - définir la propriété linefeed-treatment à "preserve".
    C'est un attribut XSL-FO qui peut être indiqué pour la plupart des éléments XSL-FO.

    Bien sûr, chercher à donner un sens sémantique à ce qui est bien plus souvent du whitespace, c'est chercher les ennuis et s'imposer beaucoup de rigueur dans la totalité de la chaîne de traitement.
    Il aurait sûrement mieux valu prévoir un balisage pour. Mais bon.


    (Et je ne vois pas pourquoi il a été soudainement question de CDATA.)

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Comme dit plus haut :
    (Et je ne vois pas pourquoi il a été soudainement question de CDATA.)
    Désolé, à force de chercher des solutions, je m'étais emmêlé les pinceaux.

    Mais bref, merci à toi thelvin, cela à fonctionner. Je met donc le sujet en [RESOLU]

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

Discussions similaires

  1. [Débutant] Mise en forme avec XSL
    Par sidahmed dans le forum XSL/XSLT/XPATH
    Réponses: 13
    Dernier message: 24/09/2007, 14h57
  2. Probleme de mise en forme avec DIV et CSS
    Par freesurfer dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 09/02/2007, 15h26
  3. [WebForms][2.0] Mise en forme avec du css
    Par kakid dans le forum Général Dotnet
    Réponses: 12
    Dernier message: 26/01/2006, 18h49
  4. Mise en forme avec Netscape et Mozilla
    Par seb30 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 18/10/2004, 10h18

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