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 :

XML/XSL vers HTML: comment transformer les linefeed en <B


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2002
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 3
    Points : 2
    Points
    2
    Par défaut XML/XSL vers HTML: comment transformer les linefeed en <B
    J'ai un fichier XML que je transforme en HTML avec XSL.
    Un élément du fichier XML contient un texte multi-ligne.
    Lorsque j'affiche le fichier HTML, les retours à la ligne sont perdus.
    Je souhaite conserver la "présentation" en remplaçant les line-feed par des balises <BR/>

    Le fichier XML contient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <DESCRIPTION>1ère ligne
    2ème ligne</DESCRIPTION>
    Le fichier HTML contiendrait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <P>1ère ligne<BR/>
    2ème ligne</P>
    Comment fait-on ?

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 13
    Points : 16
    Points
    16
    Par défaut
    2 solutions:
    - Soit tu stockes des <br/> dans ton fichier xml que tu retraduiras en <br>
    - Tu utilises
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <xsl:text>blabla
    blablabla</xsl:text>

  3. #3
    Candidat au Club
    Inscrit en
    Octobre 2002
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    La première solution ne marche pas.
    La deuxième ne répond pas à mon besoin car la fonction xsl:text permet d'écrire du texte dans la XSL.
    Mon besoin est de présenter correctement un texte multiligne issu d'un fichier XML.

    En utilisant la balise <pre>, mon texte est correctement présenté dans IE.
    Par contre, lorsque j'intègre mes pages HTML à un doc Word, les line-feed disparaissent.
    Voila pourquoi je souhaite générer une balise <BR/> comme indiqué précédemment.

    Quelqu'un sait-il le faire ?

  4. #4
    Membre confirmé
    Avatar de grishka
    Inscrit en
    Janvier 2003
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 285
    Points : 499
    Points
    499
    Par défaut
    je suis du même avis que trinitacs : ton document xml doit fournir une information supplémentaire sur la séparation des lignes. Mais pour éviter le formattage style HTML et apporter une information supplémentaire (les lignes), utilise plutot cette syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <description>
    <ligne>première ligne</ligne>
    <ligne>deuxième ligne</ligne>
    </description>
    ainsi dans la feuille XSL tu devrais t'en sortir avec ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <for-each select="ligne">
       <xsl:value-of select="."/>
       <xsl:if test="position()!=last()"><br/></xsl:if>
    </xsl:for-each>
    "Les gens normaux croient que si ca marche, c'est qu'il n'y a rien à reparer. Les ingénieurs croient que si ca marche, c'est que ca ne fait pas encore assez de choses."
    --Scott Adams

  5. #5
    Candidat au Club
    Inscrit en
    Octobre 2002
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    J'en suis arriver également à cette conclusion.
    Malheureusement, je ne peux pas modifier la structure du document XML source.
    Connais-tu un moyen de transformer mon fichier XML source en un fichier XML structurer comme tu l'indiques ?
    Fichier XML source :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <DESCRIPTION>première ligne
    deuxième ligne
    </DESCRIPTION>
    Fichier XML généré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <description> 
    <ligne>première ligne</ligne> 
    <ligne>deuxième ligne</ligne> 
    </description>

  6. #6
    Membre confirmé
    Avatar de grishka
    Inscrit en
    Janvier 2003
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 285
    Points : 499
    Points
    499
    Par défaut
    c'est un peu le même problème! autant convertir directement les linefeed en <br/>. Pour faire ca il te faut un template récursif qui découpe ton texte en chaines délimitées par la valeur unicode du linefeed. Je ne sais pas à quel point c'est portable (dépend surement de l'encodage du xml)

    tu devrais trouver un exemple ici :
    http://skew.org/xml/stylesheets/linefeed2br/linefeed_to_br_demo_13.xsl
    "Les gens normaux croient que si ca marche, c'est qu'il n'y a rien à reparer. Les ingénieurs croient que si ca marche, c'est que ca ne fait pas encore assez de choses."
    --Scott Adams

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

Discussions similaires

  1. Comment transformer les tables dans un fichier txt vers une BD comme Mysql
    Par badrdine.in dans le forum Développement de jobs
    Réponses: 5
    Dernier message: 20/03/2009, 12h58
  2. [C++ > C# 2.0] Comment transformer les types ?
    Par nyarla01 dans le forum C++/CLI
    Réponses: 1
    Dernier message: 16/03/2006, 12h36
  3. [FOP] Problème de conversion xml/xsl vers pdf
    Par Shadow aok dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 02/03/2006, 10h41
  4. xml + xsl + balise html
    Par nemya dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 09/02/2006, 10h40
  5. [XML][XSL]probleme html dans balise xml
    Par chateau64 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 02/12/2005, 11h42

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