remplacer les retours chariots par des <br /> [XSLT] - HTML/CSS - Programmation
Marsh Posté le 14-11-2002 à 17:03:10
lorill a écrit a écrit : sur google j'ai trouvé 2/3 trucs, mais c'est les mecs qui font un template de 100 lignes juste pour ca, ca peut pas être la meilleure solution |
Malheureusement si. J'ai eut le cas aussi (faire une substitution d'un caractère par plusieurs) et ça s'est fini en monstre.
Marsh Posté le 14-11-2002 à 17:13:14
kadreg a écrit a écrit : Malheureusement si. J'ai eut le cas aussi (faire une substitution d'un caractère par plusieurs) et ça s'est fini en monstre. |
argh !
je vais patcher xalan et rajouter un replace dedans, ca ira plus vite
mais ils ont pensé a quoi les mecs qui on écrit cette norme ?
Marsh Posté le 14-11-2002 à 17:14:47
lorill a écrit a écrit : mais ils ont pensé a quoi les mecs qui on écrit cette norme ? |
Ils l'ont fait le replace, mais un caractère par un caractère
Marsh Posté le 14-11-2002 à 18:03:08
Salut,
Il faut s'y prendre de façon récursive comme dans le stylesheet suivant (j'espère que ce sera lisible :-):
|
Bonne continuation et a demain! Avander
PS: Désolé, les smilies j'y suis pour rien!
Marsh Posté le 14-11-2002 à 18:43:32
c'est quand même un peu lourd, mais merci
et le caractère \n, y'a une entité pour ca ?
Marsh Posté le 14-11-2002 à 18:56:43
lorill a écrit a écrit : c'est quand même un peu lourd, mais merci et le caractère \n, y'a une entité pour ca ? |
&x0A; ? (et &x0D; pour son copain \r)
Marsh Posté le 14-11-2002 à 18:58:11
Avander a écrit a écrit : PS: Désolé, les smilies j'y suis pour rien! |
> Tu peux éditer ton message et le mettre entre des balises [ fixed] [/ fixed]
> Sinon il y a l'option "Désactiver les smilies" lorsqu'on rédige le message une première fois.
Marsh Posté le 14-11-2002 à 19:00:14
gm_superstar a écrit a écrit : &x0A; ? (et &x0D; pour son copain \r) |
ah merde ouais, j'avais pas pensé a l'unicode
Marsh Posté le 15-11-2002 à 09:23:24
Pour gm_superstar :
- Merci pour les balises [fixed] et les entités ! (En fait je viens de comprendre les icones dans l'éditeur des messages :-O)
Pour lorill:
- C'est un stylesheet basique qu'il faut toujours avoir sous la main, si tu le modifie pour qu'il accepte en paramètre le string à remplacer et le string remplaçant tu obtient une fonction find/replace que tu peux lancer avant ou après d'autres transformations.
Un autre stylesheet du même genre serait un transformation qui s'occupe de formater convenablement n'importe quel fichier xml (indentation) ou qui remplace certains elements par d'autres.
Bye. Avander
Marsh Posté le 02-12-2002 à 14:42:01
gm_superstar a écrit a écrit : &x0A; ? (et &x0D; pour son copain \r) |
marche pas
Référence a une entité non définie qu'il me dit. Ce qui est plutôt logique, mais je vois pas comment je peux la définir...
Marsh Posté le 02-12-2002 à 14:56:53
par contre le coup de faire une variable passe.
Code :
|
Marsh Posté le 02-12-2002 à 17:52:19
Si c'est pour inscrire les données saisies dans un textarea dans ta BD en conservant les sauts de ligne et que tu peux faire du javascript :
function replaceN(thisElement)
{
thisElement.value=thisElement.value.replace(/\n/g, "<br />" );
}
Marsh Posté le 02-12-2002 à 17:55:42
chocoboy a écrit a écrit : Si c'est pour inscrire les données saisies dans un textarea dans ta BD en conservant les sauts de ligne et que tu peux faire du javascript : function replaceN(thisElement) { thisElement.value=thisElement.value.replace(/\n/g, "<br />" ); } |
Bien tenté mais non. Sans conter que c'est hyper crade de stocker du html en base de données.
De toutes façon c'est bon maintenant (merci Avander)
Marsh Posté le 02-12-2002 à 18:04:56
lorill a écrit a écrit : Bien tenté mais non. Sans conter que c'est hyper crade de stocker du html en base de données. De toutes façon c'est bon maintenant (merci Avander) |
ah bon pourquoi ? moi je stocke du XML en BD...
Marsh Posté le 02-12-2002 à 18:06:02
chocoboy a écrit a écrit : ah bon pourquoi ? moi je stocke du XML en BD... |
Marsh Posté le 02-12-2002 à 18:08:19
chocoboy a écrit a écrit : ah bon pourquoi ? moi je stocke du XML en BD... |
c'est déja moins pire.
tu as déja entendu parler de séparation présentation/contenu ?
mes bases, elles en servent pas que pour le web
Marsh Posté le 02-12-2002 à 18:10:08
lorill a écrit a écrit : c'est déja moins pire. tu as déja entendu parler de séparation présentation/contenu ? mes bases, elles en servent pas que pour le web |
c'est quoi la séparation présentation/contenu ???
Marsh Posté le 02-12-2002 à 18:11:14
kadreg a écrit a écrit : |
vas y , développe, je serais moins bête ce soir en me couchant...
Marsh Posté le 02-12-2002 à 18:17:03
chocoboy a écrit a écrit : vas y , développe, je serais moins bête ce soir en me couchant... |
Soit un morceau de XML :
<personne>
<nom>toto</nom>
<prenom>titi</prenom>
<addresse>DTC</addresse>
</personne>
On a ici une information structurée. N'as-tu pas l'impression que ce type de structure peut se retrouver au niveau de la structure de la base ? Genre une table personne, avec des champs noms, prenoms et addresse ?
Mettre du XML en base me donne l'impression qu'on a fait un vilain mélange au niveau de la structure de données. Maintenant, on peut avoir réellement besoin de mettre du XML en base (je peux t'en trouver des cas), mais ça ne me semble pas dans l'ordre naturel des choses.
Marsh Posté le 02-12-2002 à 18:18:50
kadreg a écrit a écrit : Mettre du XML en base me donne l'impression qu'on a fait un vilain mélange au niveau de la structure de données. Maintenant, on peut avoir réellement besoin de mettre du XML en base (je peux t'en trouver des cas), mais ça ne me semble pas dans l'ordre naturel des choses. |
ben déja si on utilise pas une base relationnelle...
mais perso si je dois avoir du xml sorti d'une base, je préfère le générer en fonctions des données dans la base
Marsh Posté le 02-12-2002 à 18:25:29
voilà pourquoi j'utilise une structure hybride relationnel/XML (voir le pavé XML et les bases de données chez Wrox) : je développe un outil de gestion de contenu... dans ce cas précis, l'insertion d'XML dans une BD relationnel t'évite de complexifier ta base et donc des centaines de jointures inutiles : c'est très classique dans le domaine de l'édition de document... imagines un truc genre :
<document>
<paragraph>
<element type="text">Mon texte</element>
<element type="image" src="image.jgp" path="http://..." mode="portrait">
etc...
</paragraph>
</document>
bref, un truc susceptible de te traduire toutes les possibilités d'édition propre au HTMl tout en dissociant contenu et présentation (donc je génère du XML à partir de plusieurs base, puis j'aggrège avant transformation vers XHTML)... la je vois pas trop comment faire sans inclue des Blob XML dans ta base...
Marsh Posté le 02-12-2002 à 18:30:28
en fait au départ, j'était parti sur du tout relationnel... je me suis vite rendu compte que ce serait impossible (MCD incomplet faisant 10m sur 5 !)
L'insert d'XML en remplacement de certaines colonnes t'offre une simplification et une évolutivité de ta base extraordinaire
d'ailleurs, c'est comme ça que font la plupart des providers de contenu et la plupart des gros sites nécessitant une mise à jour très fréquente et aggrégeant des sources très hétérogènes...
Marsh Posté le 02-12-2002 à 18:38:50
lorill a écrit a écrit : Bien tenté mais non. Sans conter que c'est hyper crade de stocker du html en base de données. De toutes façon c'est bon maintenant (merci Avander) |
pour en revenir à ton problème : comme dans mon système, je génère le XML à la volée et je fais la transformation XSLT côté seveur, je préfère effectuer les conversions de caractères en javascript avant d'insérer dans la base : ca m'évite d'alourdir avec une transformation systématique via XSLT... c'est plus court et plus rapide.
Marsh Posté le 02-12-2002 à 18:47:50
chocoboy a écrit a écrit : pour en revenir à ton problème : comme dans mon système, je génère le XML à la volée et je fais la transformation XSLT côté seveur, je préfère effectuer les conversions de caractères en javascript avant d'insérer dans la base : ca m'évite d'alourdir avec une transformation systématique via XSLT... c'est plus court et plus rapide. |
j'aurais du expliquer mon "non" :
- je stocke le resultat de la saisie dans des fichiers xml
- ca m'emmerde de modifier ma dtd pour accepter des <br/> n'importe ou
- une grosse partie des fichiers xml existent déja (donc pas de saisie)
Marsh Posté le 02-12-2002 à 19:16:12
lorill a écrit a écrit : j'aurais du expliquer mon "non" : - je stocke le resultat de la saisie dans des fichiers xml - ca m'emmerde de modifier ma dtd pour accepter des <br/> n'importe ou - une grosse partie des fichiers xml existent déja (donc pas de saisie) |
Dans ma structure, le <br /> est reconnu comme texte et non noeud (pas besoin de modifier la DTD).
Au fait, une question, j'aimerai savoir comment tu indexes tes fichiers XML dans ton système, est ce que tu en gère beaucoup, les utilisateurs peuvent ils les modifier ...etc ?
Qu'en est_il chez toi de la vitesse d'aggrégation sur un grand nombre de documents ?
Marsh Posté le 02-12-2002 à 19:22:47
chocoboy a écrit a écrit : Au fait, une question, j'aimerai savoir comment tu indexes tes fichiers XML dans ton système |
je les indexe pas, ils me servent a générer des pages web semi-statiques (mises a jour tous les 3/4 mois)
chocoboy a écrit a écrit : est ce que tu en gère beaucoup |
pas trop.. Un peu moins de 200 je pense
chocoboy a écrit a écrit : les utilisateurs peuvent ils les modifier |
j'ai un xslt qui transforme le xml en formulaire html, mais ils ne le modifient pas, le formulaire génère une copie et l'envoie par mail a la personne chargée de valider le contenu.
chocoboy a écrit a écrit : Qu'en est_il chez toi de la vitesse d'aggrégation sur un grand nombre de documents ? |
mes transformations sont lentes, mais vu mon contexte, je m'en fous un peu.
Marsh Posté le 02-12-2002 à 21:47:00
Avander a écrit a écrit : Un autre stylesheet du même genre serait un transformation qui s'occupe de formater convenablement n'importe quel fichier xml (indentation) ou qui remplace certains elements par d'autres. Bye. Avander |
Pour l'indentation, XSLT s'en occupe tout seul :
<xsl:output indent = "yes">
http://www.w3.org/TR/xslt#stylesheet-element
Marsh Posté le 14-11-2002 à 15:11:23
bon, ca a l'air tout con, mais j'ai rien trouvé
y'a bien translate la dedans http://www.zvon.org/xxl/XSLTrefere [...] -Functions
mais ca marche caractère par caractère
sur google j'ai trouvé 2/3 trucs, mais c'est les mecs qui font un template de 100 lignes juste pour ca, ca peut pas être la meilleure solution