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 :

Saut de ligne sans <br/>


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 34
    Points : 29
    Points
    29
    Par défaut Saut de ligne sans <br/>
    Salut !

    j'ai un xml que j'affiche en html via une feuille xsl... ça arrive souvent dans ce forum

    Le truc c'est que j'aimerai écrire du texte "formaté" dans les balise xml de sorte que l'affichage prenne en compte le saut
    de ligne notamment.

    Dans mon xml j'ai une balise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <description> blablabla blibli </description>
    Ce que je voudrais c'est qu'à l'affichage il y ait un saut de ligne entre blablabla et bliblbili : j'écris donc avec la
    touche "entrée" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <description> blablabla
    blibli </description>
    J'ai remarqué que quand je fais affiché le texte dans un texterea en html, le saut de ligne est conservé, par contre ça ne
    marche pas qd on le fait affiché dans une autre balise (<p> par exemple).

    Evidement une solution serait de mettre un <br/> par l'intermédiaire de la xsl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <description> blablabla<saut/>blibli</description>
    et dans la xsl, interpréter <saut/> par <br/>

    Mais ça ne me va pas pour 3 raisons :

    1. "éthique" : dans un xml je ne veux mettre des balises dont le rôle est de déterminé l'affichage : La mise en forme ne doit pas avoir sa place dans un document xml mais seulement le sens des données.

    2. J'ai fait un petit éditeur pour rentrer les données via un formulaire web, je ne vois pas bien comment mettre la balise <saut/>, et puis même si je demande aux utilisateurs d'écrire des balises <saut/> à la main dans le formulaire, celle ci est tranformée en &lt;saut/&gt; dans le fichier après validation du formulaire (via un script asp qui va écrire dans le fichier xml)

    3. en fait la balise description je préfère que ce soit un attribut d'une balise toto :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <toto description="blablabla blibli"/>
    et là je ne peux plus mettre de balise <saut/> entre blabla et blibli ...
    en fait description est déjà un attribut dans tous mes documents xml et puis "raison 1" à nouveau : pkoi changer mon schéma pour des questions d'affichages.

    J'ai essayé une autre solution qui consiste à faire afficher le texte dans un textarea (comme je le dit au début, le formatage est conservé) et de cacher les bords pour simuler un <p>.... mais la barre de scroll apparaît dès que mon texte est trop long. Peux-t-on automatiser la taille d'un textearea en fonction de ce qu'il contient ?

    Autrement, à titre d'information je me demandais si ce problème se résoluerait pas facilement si je sortait di PFD avec xsl-fo au lieu de sortir du HTML ?

    Merci d'avance de votre aide, je prie les saints du web pour qu'une solution existe

    PS : mes doments xml (xsl y compris) commencent par : <?xml version="1.0" encoding="UTF-8"?>

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 293
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 293
    Points : 15 609
    Points
    15 609
    Par défaut
    2 possibiltés
    1) http://www.developpez.net/forums/viewtopic.php?t=129546
    2) http://www.vbxml.com/xsltStylesheets/Stylesheets/Recursion/linefeed_to_br/LF_to_Br.zip

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 34
    Points : 29
    Points
    29
    Par défaut
    Merci !
    je vois en effet que je ne suis pas le premier à me poser cette question. J'avais pourtant fait une recherche sur le forum, je comprend pas comment je ne suis pas tombé sur le post que tu as mis en lien...

    Dans le post il y a deux solutions :
    - une que j'ai évoqué plus haut : mettre une balise <saut> interprété par un <br/> en xsl ==> mais ça ne me convient pas (cf. mon premier post)
    - l'autre consistant à mettre un <xsl:text>,

    Le pb c'est qu'on ne peut pas mettre un <xsl:value-of > dans un <xsl:text>? or c'est justement ce que je voudrais faire. Je pourrais stoker la chaîne de caracère dans une variable mais g fait un test en mettant un peu de texte avec des sauts de lignes dans <xsl:text>, ça n'affiche toujours pas le saut en HTML ?

    Pour l'autre lien que tu as mis, on fait un traitement par un template lf2br avec la chaîne de caractère en paramètre (stockée préalablement dans variable), dans ce traitement on ajoute <br/> si la chaîne contient &#xA; en gros. Mais comme g un éditeur (par formulaire), je ne peux pas demandé aux utilisateurs d'écrire &#xA; à chaque fois qu'ils veulent sauter une ligne...
    ce que j'aimerai c'est que ça le fasse à chaque fois que l'utlisateur appuie sur la touche "entrée"... comme sur ce forum en fait !

    Je vais continuer à investiguer à partir ce ces idées,
    merci encore.

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 293
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 293
    Points : 15 609
    Points
    15 609
    Par défaut
    Citation Envoyé par mattmat
    Pour l'autre lien que tu as mis, on fait un traitement par un template lf2br avec la chaîne de caractère en paramètre (stockée préalablement dans variable), dans ce traitement on ajoute <br/> si la chaîne contient &#xA; en gros. Mais comme g un éditeur (par formulaire), je ne peux pas demandé aux utilisateurs d'écrire &#xA; à chaque fois qu'ils veulent sauter une ligne...
    ce que j'aimerai c'est que ça le fasse à chaque fois que l'utlisateur appuie sur la touche "entrée"... comme sur ce forum en fait !
    le &#xA; est seulement l'entité du saut de ligne, donc si il y a un saut de ligne il sera remplacer par le template

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 34
    Points : 29
    Points
    29
    Par défaut
    en effet, je n'avais pas compris sur le coup.
    C'est un peu "compliqué" (utilisation de deux variable et traitement par la fonction) mais ça marche impéccable.
    ça fais comme sur ce forum : quand on saute une ligne dans le champs d'un formulaire, le saut de ligne est conservé dans la sortie HTML via un <br/> qui n'apparaît qu'à la sortie et non dans le xml (via une balise "<saut>").
    Nickel
    et désolé pour mes post un peu longs (c'est parceque dès que j'envisage une solution apparaît un autre sous pb, etc.)

    Merci bcp !

  6. #6
    Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    bonjour je suis apparement dans le meme cas.
    le soucis est que le topic annoncer n'est plus existant. comment faire ?

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

Discussions similaires

  1. Saut de ligne sans code en php
    Par php_de_travers dans le forum Langage
    Réponses: 6
    Dernier message: 27/02/2009, 15h22
  2. [MySQL] Import d'un fichier sans saut de ligne
    Par Pgs dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 09/05/2008, 14h07
  3. Balise sans saut de ligne
    Par Flynt dans le forum Mise en page CSS
    Réponses: 14
    Dernier message: 26/04/2008, 17h04
  4. Réponses: 1
    Dernier message: 24/04/2008, 09h07
  5. [Etat] Afficher sans saut de ligne
    Par acceso dans le forum IHM
    Réponses: 6
    Dernier message: 03/01/2006, 15h57

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