Précédent   Forum des professionnels en informatique > Autres langages > XML/XSL et SOAP
XML/XSL et SOAP Forum d'entraide sur XML et SOAP. Avant de poster -> FAQ XML, Sources XML
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/12/2011, 17h19   #1
Invité de passage
 
Julien Albinet
Inscription : novembre 2010
Messages : 3
Détails du profil
Informations personnelles :
Nom : Julien Albinet

Informations forums :
Inscription : novembre 2010
Messages : 3
Points : 0
Points : 0
Par défaut [XML/XSL] Afficher des caractères ascii à l'écran

Bonjour,


Me torturant le tête depuis un moment, je me décide à poster ici


J'explique mon problème, j'ai un fichier XML et je le transforme via un fichier XSL pour l'afficher à l'écran. Jusque là classique.

Dans mon xsl j'ai ce code

Code :
1
2
3
<xsl:if test="AIDE">
  <p>Pour obtenir le retour à la ligne, utilisez le code ACSII &#10;</p>
</xsl:if>
Hors lors de l'interprétation de ma page, ce code est transformer en retour, malgré pas mal de recherche et débutant en XML/XSL je ne sais pas comment résoudre ce soucis ...


Merci de votre aide
Julien Albinet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2011, 18h09   #2
Membre confirmé
 
Inscription : octobre 2011
Messages : 188
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 188
Points : 287
Points : 287
On peut le faire comme ça, par exemple.
Code :
1
2
3
4
5
6
 
<xsl:if test="AIDE">
  <p>
    <xsl:text disable-output-escaping="yes">Pour obtenir le retour à la ligne, utilisez le code ACSII &amp:#10;</xsl:text>
  </p>
</xsl:if>
tsuji est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2011, 18h07   #3
Expert Confirmé Sénior
 
Inscription : septembre 2004
Messages : 5 090
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 090
Points : 7 013
Points : 7 013
Pour quoi faire, le disable-output-escaping ?

et puis c'est tout.
thelvin est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2011, 08h50   #4
Membre confirmé
 
Inscription : octobre 2011
Messages : 188
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 188
Points : 287
Points : 287
Citation:
Envoyé par thelvin Voir le message
Pour quoi faire, le disable-output-escaping ?

et puis c'est tout.
C'est possible que votre ecran (ou le modèle application console) soit different que le mien. Je crains qu'il ne donne pas le résultat dont l'op s'attendait.
tsuji est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2011, 16h12   #5
Expert Confirmé Sénior
 
Inscription : septembre 2004
Messages : 5 090
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 090
Points : 7 013
Points : 7 013
Citation:
Envoyé par tsuji Voir le message
C'est possible que votre ecran (ou le modèle application console) soit different que le mien. Je crains qu'il ne donne pas le résultat dont l'op s'attendait.
Le résultat final dépend d'énormément de choses qui ne nous ont pas été dites, c'est vrai.

Mais le principe fonctionnel, c'est ça. S'il y a d'autres choses à faire, c'est que ce que l'on cherche à faire quelque chose d'autre que ce qui nous est décrit.
thelvin est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2011, 17h30   #6
Membre confirmé
 
Inscription : octobre 2011
Messages : 188
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 188
Points : 287
Points : 287
op dit:
Citation:
Dans mon xsl j'ai ce code

<xsl:if test="AIDE">
<p>Pour obtenir le retour à la ligne, utilisez le code ACSII & # 1 0 ; (tsuji note:sans espace)</p>
</xsl:if>

Hors lors de l'interprétation de ma page, ce code est transformer en retour,...
ce qui est vrai.

Mais, si l'on fait "le principe functionnel" (que je ne sais pas le sens exact, mais peu importe):
Code :
1
2
3
<xsl:if test="AIDE">
  <p>Pour obtenir le retour à la ligne, utilisez le code ACSII &amp;#10;</p>
</xsl:if>
Il resulte, on peut le attendre.
Code :
<p>Pour obtenir le retour à la ligne, utilisez le code ACSII &amp;#10;</p>
L'usage de "disable-output-escaping" se trouve bien souvent dans des cas que l'on veut génerer des scripts comme xsl... il va vous donner
Code :
<p>Pour obtenir le retour à la ligne, utilisez le code ACSII & # 1 0 ; (tsuji note:sans espace)</p>
comme l'op a dit désiré d'avoir. Voilà ce que je comprends, je n'impose rien...
tsuji est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 12h20   #7
Expert Confirmé Sénior
 
Inscription : septembre 2004
Messages : 5 090
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 090
Points : 7 013
Points : 7 013
De toute façon, le problème c'est qu'on ne sait pas ce qui est demandé...

Mais a priori, ce qui est demandé c'est de produire le code HTML d'un paragraphe qui affiche ceci :

Citation:
Pour obtenir le retour à la ligne, utilisez le code ACSII & #10;
(moins l'espace.)

Et dont un code HTML correct serait ceci :

Code :
<p>Pour obtenir le retour à la ligne, utilisez le code ACSII &amp;#10;</p>
Or pour produire ce code HTML nous avons besoin de produire un élément <p> dont le contenu DOM (indépendamment de la syntaxe XML) est :

Citation:
Pour obtenir le retour à la ligne, utilisez le code ACSII & #10;
(moins l'espace)

Ce qui peut se faire de la manière que nous avions indiquée, mais sans disable-output-escaping, parce que s'il marche (ce qui n'est pas du tout garanti), il va produire à la place le code HTML :

Code :
<p>Pour obtenir le retour à la ligne, utilisez le code ACSII & #10;</p>
(sans espace)

et cela va afficher ce paragraphe :

Citation:
Pour obtenir le retour à la ligne, utilisez le code ACSII
(terminé par deux caractères whitespace : un espace et une fin de ligne, que le navigateur ignore donc.)

et si c'est ce que tu voulais faire depuis le début, il n'y a pas besoin de tout ça, il suffit de produire directement :

Code :
<p>Pour obtenir le retour à la ligne, utilisez le code ACSII & #10;</p>
(sans espace)

et, au passage, c'est exactement ce que l'op nous dit qu'il fait.

Dans les deux cas, on peut faire sans disable-output-escaping, et ça a l'air plus simple.
thelvin est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h18.


 
 
 
 
Partenaires

Hébergement Web