XSLT / XML / PHP - Éléments complexes


Elvis
WRInaute discret
WRInaute discret
 
Messages: 114
Inscription: 20 Mai 2005

XSLT / XML / PHP - Éléments complexes

Message le Dim Déc 16, 2007 19:32

Salut, j'ai un petit problème avec ma transformation.
Voici un petit topo : J'applique ma feuille XSLT avec PHP, pas de problèmes.
Pour les éléments simples, ceux qui ne contiennent que peu de texte ça va.

Mais je rencontre un problème pour gérer les éléments complexes : texte + autres éléments.
Exemple :
Code: Tout sélectionner
<element>
    blablabla blablabla <br /> blablablou
</element>

Le <br /> n'est pas pris en compte et je ma page se retrouve avec blablabla blablabla blablablou.
Bon en fait j'ai réussi à contourner ce problème avec une feinte...

Mais j'aimerais tout simplement pouvoir gérer ce type d'élément correctement, et pouvoir mélanger texte + balises, ma feinte n'étant efficace que pour les retours chariots.

Une idée ?
En attendant je vais définir une DTD, ça résoudra peut-être mon problème.

Merci !

Vap
WRInaute passionné
WRInaute passionné
 
Messages: 1090
Inscription: 17 Juin 2007

Message le Dim Déc 16, 2007 19:36

C'est pas une réponse directe, mais tu devrais mieux mettre en page avec du CSS aulieu d'uiliser des balises <br>.

Du coup ça éliminera ton problème...


Elvis
WRInaute discret
WRInaute discret
 
Messages: 114
Inscription: 20 Mai 2005

Message le Dim Déc 16, 2007 19:47

Pour les retours chariots, j'explose ma chaine et je crée des div.

Mais pour mettre du texte en gras, des liens... Je suis bloqué.

Le CSS ne peut pas m'aider vu que pour l'appliquer j'ai besoin de balises, et que mon problème c'est précisément que les balises que j'insère dans mon élément sont zappées.

Vap
WRInaute passionné
WRInaute passionné
 
Messages: 1090
Inscription: 17 Juin 2007

Message le Lun Déc 17, 2007 13:11

Je me répète, mais pourquoi n'utilise tu pas les CSS pour mettre en page au lieu de mettre des retours chariots?


Elvis
WRInaute discret
WRInaute discret
 
Messages: 114
Inscription: 20 Mai 2005

Message le Lun Déc 17, 2007 14:09

Merci de t'intéresser à mon cas, mais je vais tourner la question avec un exemple ce sera peut-être plus parlant.

Soit la balise suivante dans mon fichier XML
Code: Tout sélectionner
<description>J'ai besoin d'insérer des <b>balises</b> pour mettre en forme mon texte, insérer des liens etc.
<br />
<br />
Le CSS c'est génial mais le CSS sans balise ça sert à rien. Je peux pas insérer un lien, mettre un bout de texte en gras sans utiliser de balise.
</description>


Après la transformation de mon fichier XML avec PHP / XSLT, voici ce que j'obtiens :
Code: Tout sélectionner
J'ai besoin d'insérer des balises pour mettre en forme mon texte, pour insérer des liens. Le CSS c'est génial mais le CSS sans balise ça sert à rien. Je peux pas insérer un lien, mettre un bout de texte en gras sans utiliser de balise.


La transformation me fait perdre ma mise en forme et mes liens, probablement parce que le parser php considère ma balise <description> comme un élément simple, par opposition à un élément complexe qui peut contenir plusieurs choses différentes. Enfin je suppose que ça vient de ça.

Ce que j'aimerais savoir, c'est comment indiquer à PHP que ma balise <description> a le droit d'accueillir du texte + d'autres balises.

denisgrugeon
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 2
Inscription: 5 Nov 2007

Message le Ven Juil 25, 2008 13:23

Elvis a écrit:
Code: Tout sélectionner
<description>J'ai besoin d'insérer des <b>balises</b> pour mettre en forme mon texte, insérer des liens etc.
</description>


J'ai le même problème. As-tu trouvé une solution ?

denisgrugeon
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 2
Inscription: 5 Nov 2007

Message le Ven Juil 25, 2008 14:38

Eléments de réponse ici : http://www.journaldunet.com/developpeur/tutoriel/xml/040607-xml-cdata.shtml
Il faut mettre la description sou la forme suivante :
Code: Tout sélectionner
<description><![CDATA[là tu mets ton <a href="www.webrankinfo.com">lien</a> par exemple]]></description>

Je soumets ceci en validation aux experts !


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités