XSLT / XML / PHP - Éléments complexes
7 messages
• Page 1 sur 1
-

Elvis - WRInaute discret

- Messages: 114
- Inscription: 20 Mai 2005
XSLT / XML / PHP - Éléments complexes
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 :
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 !
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 !
-

Elvis - WRInaute discret

- Messages: 114
- Inscription: 20 Mai 2005
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.
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.
-

Elvis - WRInaute discret

- Messages: 114
- Inscription: 20 Mai 2005
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
Après la transformation de mon fichier XML avec PHP / XSLT, voici ce que j'obtiens :
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.
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

- Messages: 2
- Inscription: 5 Nov 2007
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

- Messages: 2
- Inscription: 5 Nov 2007
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 :
Je soumets ceci en validation aux experts !
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 !
7 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- [XML et XSLT] Tester si une chaîne est un chemin XML valide
- Flash/Xml: Redirection vers un XML+Gabarit XSLT si pas flash
- XML-XSLT et les robots dindexation
- Référencement d'un site utilisant xml et xslt
- [PHP] Création d'images (complexes) à la volée
- [Résolu] [PHP - XML] Comment transformer XML en tableau
- AJax, php et xml, probleme de variable php
- xml et php
- XML DOM et PHP
- Help XML/RSS/PHP
Consultez la description détaillée des produits ou services de Google suivants : API Google Checkout
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités

